{ "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": { "License": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "name": { "title": "Name", "description": "The license name used for the package.", "type": "string" }, "url": { "title": "Url", "description": "A URL to the license used for the package.", "type": "string" }, "type": { "title": "Type", "default": "License", "type": "string", "pattern": "^License$", "readOnly": true } }, "required": [ "name" ] } ], "title": "License", "description": "License information for the Package", "discriminator": { "propertyName": "type" } }, "FunctionParameterOut": { "allOf": [ { "$ref": "#/components/schemas/FunctionArtifact" }, { "type": "object", "properties": { "type": { "title": "Type", "default": "FunctionParameterOut", "type": "string", "pattern": "^FunctionParameterOut$", "readOnly": true } } } ], "title": "FunctionParameterOut", "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.", "discriminator": { "propertyName": "type" } }, "FunctionArtifact": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "name": { "title": "Name", "description": "Name of the artifact. Must be unique within a task's inputs / outputs.", "type": "string" }, "path": { "title": "Path", "description": "Path to the artifact relative to the working directory where the command is executed.", "type": "string" }, "description": { "title": "Description", "description": "Optional description for input parameter.", "type": "string" }, "type": { "title": "Type", "default": "FunctionArtifact", "type": "string", "pattern": "^FunctionArtifact$", "readOnly": true } }, "required": [ "name", "path" ] } ], "title": "FunctionArtifact", "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.", "discriminator": { "propertyName": "type" } }, "FunctionOutputs": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "parameters": { "title": "Parameters", "default": [], "type": "array", "items": { "$ref": "#/components/schemas/FunctionParameterOut" } }, "artifacts": { "title": "Artifacts", "default": [], "type": "array", "items": { "$ref": "#/components/schemas/FunctionArtifact" } }, "type": { "title": "Type", "default": "FunctionOutputs", "type": "string", "pattern": "^FunctionOutputs$", "readOnly": true } } } ], "title": "FunctionOutputs", "description": "The Outputs of a Function", "discriminator": { "propertyName": "type" } }, "DAGInputParameter": { "allOf": [ { "$ref": "#/components/schemas/_DAGInputsBase" }, { "type": "object", "required": [ "name" ], "properties": { "name": { "title": "Name", "description": "Name is the parameter name. must be unique within a task's inputs.", "type": "string" }, "default": { "title": "Default", "description": "Default value to use for an input parameter if a value was not supplied.", "type": "string" }, "description": { "title": "Description", "description": "Optional description for input parameter.", "type": "string" }, "required": { "title": "Required", "description": "Whether this value must be specified in a task argument.", "type": "boolean" }, "type": { "title": "Type", "default": "DAGInputParameter", "type": "string", "pattern": "^DAGInputParameter$", "readOnly": true } } } ], "title": "DAGInputParameter", "description": "An input parameter used within the DAG.", "discriminator": { "propertyName": "type" } }, "InputReference": { "title": "InputReference", "description": "An enumeration.", "enum": [ "inputs" ] }, "InputParameterReference": { "allOf": [ { "$ref": "#/components/schemas/BaseReference" }, { "type": "object", "required": [ "variable" ], "properties": { "variable": { "title": "Variable", "description": "The name of the DAG input variable", "type": "string" }, "type": { "default": "inputs", "allOf": [ { "$ref": "#/components/schemas/InputReference" } ], "readOnly": true } } } ], "title": "InputParameterReference", "description": "An Input Parameter Reference", "discriminator": { "propertyName": "type" } }, "TaskReference": { "title": "TaskReference", "description": "An enumeration.", "enum": [ "tasks" ] }, "TaskParameterReference": { "allOf": [ { "$ref": "#/components/schemas/BaseReference" }, { "type": "object", "required": [ "name", "variable" ], "properties": { "name": { "title": "Name", "description": "The name of the task to pull output data from", "type": "string" }, "variable": { "title": "Variable", "description": "The name of the task output variable", "type": "string" }, "type": { "default": "tasks", "allOf": [ { "$ref": "#/components/schemas/TaskReference" } ], "readOnly": true } } } ], "title": "TaskParameterReference", "description": "A Task Parameter Reference", "discriminator": { "propertyName": "type" } }, "ItemReference": { "title": "ItemReference", "description": "An enumeration.", "enum": [ "item" ] }, "ItemParameterReference": { "allOf": [ { "$ref": "#/components/schemas/BaseReference" }, { "type": "object", "properties": { "type": { "default": "item", "allOf": [ { "$ref": "#/components/schemas/ItemReference" } ], "readOnly": true }, "variable": { "title": "Variable", "description": "The name of the looped item variable (use dot notation for nested json values)", "type": "string" } } } ], "title": "ItemParameterReference", "description": "An Item Parameter Reference", "discriminator": { "propertyName": "type" } }, "DAGTaskParameterArgument": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "name": { "title": "Name", "description": "Name of the argument variable", "type": "string" }, "from": { "title": "From", "description": "The previous task or global workflow variable to pull this argument from", "anyOf": [ { "$ref": "#/components/schemas/InputParameterReference" }, { "$ref": "#/components/schemas/TaskParameterReference" }, { "$ref": "#/components/schemas/ItemParameterReference" } ] }, "value": { "title": "Value", "description": "The fixed value for this task argument", "type": "string" }, "type": { "title": "Type", "default": "DAGTaskParameterArgument", "type": "string", "pattern": "^DAGTaskParameterArgument$", "readOnly": true } }, "required": [ "name" ] } ], "title": "DAGTaskParameterArgument", "description": "Input argument for a DAG task.\n\nThe name must correspond to an input parameter from the template function the task\nrefers to.", "discriminator": { "propertyName": "type" } }, "InputArtifactReference": { "allOf": [ { "$ref": "#/components/schemas/BaseReference" }, { "type": "object", "required": [ "variable" ], "properties": { "variable": { "title": "Variable", "description": "The name of the DAG input variable", "type": "string" }, "type": { "default": "inputs", "allOf": [ { "$ref": "#/components/schemas/InputReference" } ], "readOnly": true } } } ], "title": "InputArtifactReference", "description": "An Input Artifact Reference", "discriminator": { "propertyName": "type" } }, "TaskArtifactReference": { "allOf": [ { "$ref": "#/components/schemas/BaseReference" }, { "type": "object", "required": [ "name", "variable" ], "properties": { "name": { "title": "Name", "description": "The name of the task to pull output data from", "type": "string" }, "variable": { "title": "Variable", "description": "The name of the task output variable", "type": "string" }, "type": { "default": "tasks", "allOf": [ { "$ref": "#/components/schemas/TaskReference" } ], "readOnly": true } } } ], "title": "TaskArtifactReference", "description": "A Task Artifact Reference", "discriminator": { "propertyName": "type" } }, "FolderReference": { "title": "FolderReference", "description": "An enumeration.", "enum": [ "folder" ] }, "FolderArtifactReference": { "allOf": [ { "$ref": "#/components/schemas/BaseReference" }, { "type": "object", "required": [ "path" ], "properties": { "path": { "title": "Path", "description": "The path to the file or folder relative to the workflow output folder", "type": "string" }, "type": { "default": "folder", "allOf": [ { "$ref": "#/components/schemas/FolderReference" } ], "readOnly": true } } } ], "title": "FolderArtifactReference", "description": "A Base reference model", "discriminator": { "propertyName": "type" } }, "DAGTaskArtifactArgument": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "name": { "title": "Name", "description": "Name of the argument variable", "type": "string" }, "from": { "title": "From", "description": "The previous task or global workflow variable to pull this argument from", "anyOf": [ { "$ref": "#/components/schemas/InputArtifactReference" }, { "$ref": "#/components/schemas/TaskArtifactReference" }, { "$ref": "#/components/schemas/FolderArtifactReference" } ] }, "subpath": { "title": "Subpath", "description": "Specify this value if your source artifact is a repository and you want to source an artifact from within that directory.", "type": "string" }, "type": { "title": "Type", "default": "DAGTaskArtifactArgument", "type": "string", "pattern": "^DAGTaskArtifactArgument$", "readOnly": true } }, "required": [ "name", "from" ] } ], "title": "DAGTaskArtifactArgument", "description": "Input argument for a DAG task.\n\nThe name must correspond to an input artifact from the template function the task\nrefers to.", "discriminator": { "propertyName": "type" } }, "DAGTaskArgument": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "parameters": { "title": "Parameters", "description": "A list of input parameters to pass to the task", "default": [], "type": "array", "items": { "$ref": "#/components/schemas/DAGTaskParameterArgument" } }, "artifacts": { "title": "Artifacts", "description": "A list of input artifacts to pass to the task", "default": [], "type": "array", "items": { "$ref": "#/components/schemas/DAGTaskArtifactArgument" } }, "type": { "title": "Type", "default": "DAGTaskArgument", "type": "string", "pattern": "^DAGTaskArgument$", "readOnly": true } } } ], "title": "DAGTaskArgument", "description": "DAG task argument.\n\nThese arguments should match the inputs from the template referenced in the task.", "discriminator": { "propertyName": "type" } }, "HTTPSource": { "allOf": [ { "$ref": "#/components/schemas/ArtifactSource" }, { "type": "object", "required": [ "url" ], "properties": { "url": { "title": "Url", "description": "For a HTTP endpoint this can be http://climate.onebuilding.org.", "type": "string" }, "type": { "title": "Type", "default": "http", "pattern": "^http$", "type": "string", "readOnly": true } } } ], "title": "HTTPSource", "description": "HTTPSource\n\nA web HTTP to an FTP server or an API for example.", "discriminator": { "propertyName": "type" } }, "S3Source": { "allOf": [ { "$ref": "#/components/schemas/ArtifactSource" }, { "type": "object", "required": [ "key", "endpoint", "bucket" ], "properties": { "key": { "title": "Key", "description": "The path inside the bucket to source artifacts from.", "type": "string" }, "endpoint": { "title": "Endpoint", "description": "The HTTP endpoint to reach the S3 bucket.", "type": "string" }, "bucket": { "title": "Bucket", "description": "The name of the S3 bucket on the host server.", "type": "string" }, "type": { "title": "Type", "default": "s3", "pattern": "^s3$", "type": "string", "readOnly": true }, "credentials_path": { "title": "Credentials Path", "description": "Path to the file holding the AccessKey and SecretAccessKey to authenticate to the bucket. Assumes public bucket access if none are specified.", "type": "string" } } } ], "title": "S3Source", "description": "S3Source\n\nAn S3 bucket artifact Source.", "discriminator": { "propertyName": "type" } }, "ProjectFolderSource": { "allOf": [ { "$ref": "#/components/schemas/ArtifactSource" }, { "type": "object", "properties": { "type": { "title": "Type", "default": "project-folder", "pattern": "^project-folder$", "type": "string", "readOnly": true }, "path": { "title": "Path", "description": "For a local filesystem this can be \"C:\\Users\\me\\simulations\\test\". This will correspond to the run specific folder .", "type": "string" } } } ], "title": "ProjectFolderSource", "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.", "discriminator": { "propertyName": "type" } }, "SimulationOutputSource": { "allOf": [ { "$ref": "#/components/schemas/ArtifactSource" }, { "type": "object", "required": [ "simulation" ], "properties": { "simulation": { "title": "Simulation", "description": "Simulation ID", "example": "563aeb80-af68-448a-8c41-ffa49547856b", "type": "string" }, "type": { "title": "Type", "default": "simulation", "pattern": "^simulation$", "type": "string", "readOnly": true }, "output": { "title": "Output", "description": "Simulation output artifact name", "example": "energyplus-results", "type": "string" }, "path": { "title": "Path", "description": "The path within the simulation outputs folder to a specified artifact", "example": "results/out.csv", "type": "string" } } } ], "title": "SimulationOutputSource", "description": "SimulationOutputSource\n\nAn artifact pulled from the outputs of another simulation", "discriminator": { "propertyName": "type" } }, "SimulationInputArtifact": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "required": [ "name", "source" ], "properties": { "name": { "title": "Name", "description": "The name of the artifact", "type": "string" }, "source": { "title": "Source", "description": "The source to pull the artifact from", "anyOf": [ { "$ref": "#/components/schemas/HTTPSource" }, { "$ref": "#/components/schemas/S3Source" }, { "$ref": "#/components/schemas/ProjectFolderSource" }, { "$ref": "#/components/schemas/SimulationOutputSource" } ] }, "type": { "title": "Type", "default": "SimulationInputArtifact", "type": "string", "pattern": "^SimulationInputArtifact$", "readOnly": true } } } ], "title": "SimulationInputArtifact", "description": "A workflow Artifact Argument", "discriminator": { "propertyName": "type" } }, "UpdateAccepted": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "status": { "title": "Status", "default": "accepted", "type": "string" }, "type": { "title": "Type", "default": "UpdateAccepted", "type": "string", "pattern": "^UpdateAccepted$", "readOnly": true } } } ], "title": "UpdateAccepted", "description": "Accepted request response for existing resource", "discriminator": { "propertyName": "type" } }, "SubjectType": { "title": "SubjectType", "description": "An enumeration.", "enum": [ "user", "team" ], "type": "string" }, "RepositoryPolicySubject": { "allOf": [ { "$ref": "#/components/schemas/PolicySubject" }, { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/SubjectType", "readOnly": true } } } ], "title": "RepositoryPolicySubject", "discriminator": { "propertyName": "type" } }, "DAGOutputParameter": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "name": { "title": "Name", "description": "The name of the output variable", "type": "string" }, "from": { "title": "From", "description": "The task reference to pull this output variable from. Note, this must be an output variable.", "allOf": [ { "$ref": "#/components/schemas/TaskParameterReference" } ] }, "type": { "title": "Type", "default": "DAGOutputParameter", "type": "string", "pattern": "^DAGOutputParameter$", "readOnly": true } }, "required": [ "name", "from" ] } ], "title": "DAGOutputParameter", "description": "A parameter sourced from within the DAG that is exposed as an output.", "discriminator": { "propertyName": "type" } }, "UserPublic": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "username": { "title": "Username", "description": "The lowercase account name for this user", "example": "ladybugbot", "type": "string" }, "name": { "title": "Name", "description": "The display name for this user", "example": "Ladybug Bot", "type": "string" }, "picture": { "title": "Picture", "description": "URL to the picture associated with this user", "example": "https://avatars1.githubusercontent.com/u/38131342", "type": "string" }, "type": { "title": "Type", "default": "UserPublic", "type": "string", "pattern": "^UserPublic$", "readOnly": true } }, "required": [ "username" ] } ], "title": "UserPublic", "discriminator": { "propertyName": "type" } }, "ArgumentParameter": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "name": { "title": "Name", "description": "The name of the parameter", "type": "string" }, "value": { "title": "Value", "description": "The value of the parameter", "type": "string" }, "type": { "title": "Type", "default": "ArgumentParameter", "type": "string", "pattern": "^ArgumentParameter$", "readOnly": true } }, "required": [ "name", "value" ] } ], "title": "ArgumentParameter", "description": "A workflow Parameter Argument", "discriminator": { "propertyName": "type" } }, "OrganizationCreate": { "allOf": [ { "$ref": "#/components/schemas/OrganizationUpdate" }, { "type": "object", "required": [ "account_name" ], "properties": { "account_name": { "title": "Account Name", "description": "The unique name of the org in small case without spaces", "example": "ladybug-tools", "type": "string" }, "type": { "title": "Type", "default": "OrganizationCreate", "type": "string", "pattern": "^OrganizationCreate$", "readOnly": true } } } ], "title": "OrganizationCreate", "discriminator": { "propertyName": "type" } }, "DAGInputArtifact": { "allOf": [ { "$ref": "#/components/schemas/_DAGInputsBase" }, { "type": "object", "required": [ "name" ], "properties": { "name": { "title": "Name", "description": "The name of the artifact within the scope of the DAG", "type": "string" }, "description": { "title": "Description", "description": "Optional description for the input artifact", "type": "string" }, "default": { "title": "Default", "description": "If no artifact is specified then pull it from this source location.", "anyOf": [ { "$ref": "#/components/schemas/HTTPSource" }, { "$ref": "#/components/schemas/S3Source" }, { "$ref": "#/components/schemas/ProjectFolderSource" } ] }, "required": { "title": "Required", "description": "Whether this value must be specified in a task argument.", "type": "boolean" }, "type": { "title": "Type", "default": "DAGInputArtifact", "type": "string", "pattern": "^DAGInputArtifact$", "readOnly": true } } } ], "title": "DAGInputArtifact", "description": "An artifact used within the DAG.", "discriminator": { "propertyName": "type" } }, "DAGInputs": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "parameters": { "title": "Parameters", "description": "A list of parameters the DAG will use as input values", "default": [], "type": "array", "items": { "$ref": "#/components/schemas/DAGInputParameter" } }, "artifacts": { "title": "Artifacts", "description": "A list of artifacts the DAG will use", "default": [], "type": "array", "items": { "$ref": "#/components/schemas/DAGInputArtifact" } }, "type": { "title": "Type", "default": "DAGInputs", "type": "string", "pattern": "^DAGInputs$", "readOnly": true } } } ], "title": "DAGInputs", "description": "Inputs of a DAG.", "discriminator": { "propertyName": "type" } }, "DAGTaskLoop": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "from": { "title": "From", "description": "The task or DAG parameter to loop over (must be iterable).", "anyOf": [ { "$ref": "#/components/schemas/InputParameterReference" }, { "$ref": "#/components/schemas/TaskParameterReference" } ] }, "value": { "title": "Value", "description": "A list of values or JSON objects to loop over.", "type": "array", "items": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "number" }, { "type": "object" } ] } }, "type": { "title": "Type", "default": "DAGTaskLoop", "type": "string", "pattern": "^DAGTaskLoop$", "readOnly": true } } } ], "title": "DAGTaskLoop", "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.", "discriminator": { "propertyName": "type" } }, "DAGTaskOutputParameter": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "name": { "title": "Name", "description": "The name of the output variable", "type": "string" }, "type": { "title": "Type", "default": "DAGTaskOutputParameter", "type": "string", "pattern": "^DAGTaskOutputParameter$", "readOnly": true } }, "required": [ "name" ] } ], "title": "DAGTaskOutputParameter", "description": "Output parameter for a DAG task.\n\nThe name must correspond to an output parameter from the template function the task\nrefers to.", "discriminator": { "propertyName": "type" } }, "DAGTaskOutputArtifact": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "name": { "title": "Name", "description": "The name of the output variable", "type": "string" }, "path": { "title": "Path", "description": "The path where the artifact should be saved relative to the DAG folder.", "type": "string" }, "type": { "title": "Type", "default": "DAGTaskOutputArtifact", "type": "string", "pattern": "^DAGTaskOutputArtifact$", "readOnly": true } }, "required": [ "name" ] } ], "title": "DAGTaskOutputArtifact", "description": "Output artifact for a DAG task.\n\nThe name must correspond to an output artifact from the template function the task\nrefers to.", "discriminator": { "propertyName": "type" } }, "DAGTaskOutputs": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "parameters": { "title": "Parameters", "description": "A list of output parameters to expose from the task", "default": [], "type": "array", "items": { "$ref": "#/components/schemas/DAGTaskOutputParameter" } }, "artifacts": { "title": "Artifacts", "description": "A list of output artifacts to expose from the task", "default": [], "type": "array", "items": { "$ref": "#/components/schemas/DAGTaskOutputArtifact" } }, "type": { "title": "Type", "default": "DAGTaskOutputs", "type": "string", "pattern": "^DAGTaskOutputs$", "readOnly": true } } } ], "title": "DAGTaskOutputs", "description": "These outputs should match the outputs from the template referenced in the task", "discriminator": { "propertyName": "type" } }, "DAGTask": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "name": { "title": "Name", "description": "Name for this step. It must be unique in DAG.", "type": "string" }, "template": { "title": "Template", "description": "Template name.", "type": "string" }, "arguments": { "title": "Arguments", "description": "The input arguments for this task", "allOf": [ { "$ref": "#/components/schemas/DAGTaskArgument" } ] }, "dependencies": { "title": "Dependencies", "description": "Dependencies are name of other DAG steps which this depends on.", "type": "array", "items": { "type": "string" } }, "loop": { "title": "Loop", "description": "List of inputs to loop over.", "allOf": [ { "$ref": "#/components/schemas/DAGTaskLoop" } ] }, "sub_folder": { "title": "Sub Folder", "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.", "type": "string" }, "outputs": { "title": "Outputs", "description": "The outputs of this task", "allOf": [ { "$ref": "#/components/schemas/DAGTaskOutputs" } ] }, "type": { "title": "Type", "default": "DAGTask", "type": "string", "pattern": "^DAGTask$", "readOnly": true } }, "required": [ "name", "template" ] } ], "title": "DAGTask", "description": "The instance of a function template matched with DAG inputs and outputs.", "discriminator": { "propertyName": "type" } }, "DAGOutputArtifact": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "name": { "title": "Name", "description": "The name of the output variable", "type": "string" }, "from": { "title": "From", "description": "The task reference to pull this output variable from. Note, this must be an output variable.", "anyOf": [ { "$ref": "#/components/schemas/TaskArtifactReference" }, { "$ref": "#/components/schemas/FolderArtifactReference" } ] }, "type": { "title": "Type", "default": "DAGOutputArtifact", "type": "string", "pattern": "^DAGOutputArtifact$", "readOnly": true } }, "required": [ "name", "from" ] } ], "title": "DAGOutputArtifact", "description": "An artifact sourced from within the DAG that is exposed as an output", "discriminator": { "propertyName": "type" } }, "DAGOutputs": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "parameters": { "title": "Parameters", "description": "A list of output parameters exposed by this DAG", "default": [], "type": "array", "items": { "$ref": "#/components/schemas/DAGOutputParameter" } }, "artifacts": { "title": "Artifacts", "description": "A list of output artifacts exposed by this DAG", "default": [], "type": "array", "items": { "$ref": "#/components/schemas/DAGOutputArtifact" } }, "type": { "title": "Type", "default": "DAGOutputs", "type": "string", "pattern": "^DAGOutputs$", "readOnly": true } } } ], "title": "DAGOutputs", "description": "Artifacts and Parameters exposed by the DAG", "discriminator": { "propertyName": "type" } }, "DAG": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "name": { "title": "Name", "description": "A unique name for this dag.", "type": "string" }, "tasks": { "title": "Tasks", "description": "Tasks are a list of DAG steps", "type": "array", "items": { "$ref": "#/components/schemas/DAGTask" } }, "inputs": { "title": "Inputs", "description": "Inputs for the DAG.", "allOf": [ { "$ref": "#/components/schemas/DAGInputs" } ] }, "fail_fast": { "title": "Fail Fast", "description": "Stop scheduling new steps, as soon as it detects that one of the DAG nodes is failed. Default is True.", "default": true, "type": "boolean" }, "outputs": { "title": "Outputs", "description": "Outputs of the DAG that can be used by other DAGs", "allOf": [ { "$ref": "#/components/schemas/DAGOutputs" } ] }, "type": { "title": "Type", "default": "DAG", "type": "string", "pattern": "^DAG$", "readOnly": true } }, "required": [ "name", "tasks" ] } ], "title": "DAG", "description": "A Directed Acyclic Graph containing a list of tasks.", "discriminator": { "propertyName": "type" } }, "AccountPublic": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "id": { "title": "Id", "example": "0ad77f99-8043-46e4-8220-7221487c3ee5", "type": "string" }, "type": { "title": "Type", "example": "user", "type": "string", "readOnly": true }, "name": { "title": "Name", "example": "LadybugBot", "type": "string" } }, "required": [ "id", "type", "name" ] } ], "title": "AccountPublic", "discriminator": { "propertyName": "type" } }, "PublicAccountList": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "properties": { "page": { "title": "Page", "description": "The current page the pagination request is on", "type": "integer", "format": "int32" }, "per_page": { "title": "Per Page", "description": "The number of pages per pagination request", "type": "integer", "format": "int32" }, "page_count": { "title": "Page Count", "description": "The total number of pages", "type": "integer", "format": "int32" }, "total_count": { "title": "Total Count", "description": "The total number of resources matching the list request", "type": "integer", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/AccountPublic" } }, "next_page": { "title": "Next Page", "description": "The next page, if this on is not the last", "type": "integer", "format": "int32" }, "type": { "title": "Type", "default": "PublicAccountList", "type": "string", "pattern": "^PublicAccountList$", "readOnly": true } } } ], "title": "PublicAccountList", "description": "A list response from a pagination request", "discriminator": { "propertyName": "type" } }, "APIToken": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "name": { "title": "Name", "description": "The user friendly name of the API token", "type": "string" }, "claims": { "title": "Claims", "description": "Key value pairs of auth claims the API token is entitled to", "default": {}, "type": "object", "additionalProperties": { "type": "string" } }, "type": { "title": "Type", "default": "APIToken", "type": "string", "pattern": "^APIToken$", "readOnly": true } }, "required": [ "name" ] } ], "title": "APIToken", "discriminator": { "propertyName": "type" } }, "APITokenList": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "properties": { "page": { "title": "Page", "description": "The current page the pagination request is on", "type": "integer", "format": "int32" }, "per_page": { "title": "Per Page", "description": "The number of pages per pagination request", "type": "integer", "format": "int32" }, "page_count": { "title": "Page Count", "description": "The total number of pages", "type": "integer", "format": "int32" }, "total_count": { "title": "Total Count", "description": "The total number of resources matching the list request", "type": "integer", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/APIToken" } }, "next_page": { "title": "Next Page", "description": "The next page, if this on is not the last", "type": "integer", "format": "int32" }, "type": { "title": "Type", "default": "APITokenList", "type": "string", "pattern": "^APITokenList$", "readOnly": true } } } ], "title": "APITokenList", "description": "A list response from a pagination request", "discriminator": { "propertyName": "type" } }, "SimulationInputParameter": { "allOf": [ { "$ref": "#/components/schemas/ArgumentParameter" }, { "type": "object", "properties": { "type": { "title": "Type", "default": "SimulationInputParameter", "type": "string", "pattern": "^SimulationInputParameter$", "readOnly": true } } } ], "title": "SimulationInputParameter", "description": "A workflow Parameter Argument", "discriminator": { "propertyName": "type" } }, "FunctionParameterIn": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "name": { "title": "Name", "description": "Name is the parameter name. must be unique within a task's inputs.", "type": "string" }, "default": { "title": "Default", "description": "Default value to use for an input parameter if a value was not supplied.", "type": "string" }, "description": { "title": "Description", "description": "Optional description for input parameter.", "type": "string" }, "required": { "title": "Required", "description": "Whether this value must be specified in a task argument.", "type": "boolean" }, "type": { "title": "Type", "default": "FunctionParameterIn", "type": "string", "pattern": "^FunctionParameterIn$", "readOnly": true } }, "required": [ "name" ] } ], "title": "FunctionParameterIn", "description": "A Function Parameter\n\nParameter indicate a passed string parameter to a service template with an optional\ndefault value.", "discriminator": { "propertyName": "type" } }, "FunctionInputs": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "parameters": { "title": "Parameters", "default": [], "type": "array", "items": { "$ref": "#/components/schemas/FunctionParameterIn" } }, "artifacts": { "title": "Artifacts", "default": [], "type": "array", "items": { "$ref": "#/components/schemas/FunctionArtifact" } }, "type": { "title": "Type", "default": "FunctionInputs", "type": "string", "pattern": "^FunctionInputs$", "readOnly": true } } } ], "title": "FunctionInputs", "description": "The Inputs of a Function", "discriminator": { "propertyName": "type" } }, "Function": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "name": { "title": "Name", "description": "Function name. Must be unique within an operator.", "type": "string" }, "command": { "title": "Command", "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 |", "type": "string" }, "description": { "title": "Description", "description": "Function description. A short human readable description for this function.", "type": "string" }, "inputs": { "title": "Inputs", "description": "Input arguments for this function.", "default": { "parameters": [], "artifacts": [] }, "allOf": [ { "$ref": "#/components/schemas/FunctionInputs" } ] }, "outputs": { "title": "Outputs", "description": "List of output arguments.", "default": { "parameters": [], "artifacts": [] }, "allOf": [ { "$ref": "#/components/schemas/FunctionOutputs" } ] }, "type": { "title": "Type", "default": "Function", "type": "string", "pattern": "^Function$", "readOnly": true } }, "required": [ "name", "command" ] } ], "title": "Function", "description": "A Function with a single command", "discriminator": { "propertyName": "type" } }, "Maintainer": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "name": { "title": "Name", "description": "The name of the author/maintainer person or organization.", "type": "string" }, "email": { "title": "Email", "description": "The email address of the author/maintainer person or organization.", "type": "string" }, "type": { "title": "Type", "default": "Maintainer", "type": "string", "pattern": "^Maintainer$", "readOnly": true } }, "required": [ "name" ] } ], "title": "Maintainer", "description": "Maintainer information", "discriminator": { "propertyName": "type" } }, "MetaData": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "name": { "title": "Name", "description": "Package name. Make it descriptive and helpful ;)", "type": "string" }, "tag": { "title": "Tag", "description": "The tag of the package", "type": "string" }, "app_version": { "title": "App Version", "description": "The version of the application code underlying the manifest", "type": "string" }, "keywords": { "title": "Keywords", "description": "A list of keywords to search the package by", "type": "array", "items": { "type": "string" } }, "maintainers": { "title": "Maintainers", "description": "A list of maintainers for the package", "type": "array", "items": { "$ref": "#/components/schemas/Maintainer" } }, "home": { "title": "Home", "description": "The URL of this package's home page", "type": "string" }, "sources": { "title": "Sources", "description": "A list of URLs to source code for this project", "type": "array", "items": { "type": "string" } }, "icon": { "title": "Icon", "description": "A URL to an SVG or PNG image to be used as an icon", "type": "string" }, "deprecated": { "title": "Deprecated", "description": "Whether this package is deprecated", "type": "boolean" }, "description": { "title": "Description", "description": "A description of what this package does", "type": "string" }, "license": { "title": "License", "description": "The license information.", "allOf": [ { "$ref": "#/components/schemas/License" } ] }, "type": { "title": "Type", "default": "MetaData", "type": "string", "pattern": "^MetaData$", "readOnly": true } }, "required": [ "name", "tag" ] } ], "title": "MetaData", "description": "Package metadata information.", "discriminator": { "propertyName": "type" } }, "DockerConfig": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "image": { "title": "Image", "description": "Docker image name. Must include tag.", "type": "string" }, "workdir": { "title": "Workdir", "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.", "type": "string" }, "registry": { "title": "Registry", "description": "The container registry URLs that this container should be pulled from. Will default to Dockerhub if none is specified.", "type": "string" }, "type": { "title": "Type", "default": "DockerConfig", "type": "string", "pattern": "^DockerConfig$", "readOnly": true } }, "required": [ "image", "workdir" ] } ], "title": "DockerConfig", "description": "Operator Configuration to run in a Docker container", "discriminator": { "propertyName": "type" } }, "LocalConfig": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "type": { "title": "Type", "default": "LocalConfig", "type": "string", "pattern": "^LocalConfig$", "readOnly": true } } } ], "title": "LocalConfig", "description": "Operator Configuration to run on a desktop.", "discriminator": { "propertyName": "type" } }, "Config": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "docker": { "title": "Docker", "description": "The configuration to use this operator in a docker container", "allOf": [ { "$ref": "#/components/schemas/DockerConfig" } ] }, "local": { "title": "Local", "description": "The configuration to use this operator locally", "allOf": [ { "$ref": "#/components/schemas/LocalConfig" } ] }, "type": { "title": "Type", "default": "Config", "type": "string", "pattern": "^Config$", "readOnly": true } }, "required": [ "docker" ] } ], "title": "Config", "description": "Operator configuration.\n\nThe config is used to schedule functions on a desktop or in other contexts\n(ie: Docker).", "discriminator": { "propertyName": "type" } }, "Operator": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "metadata": { "title": "Metadata", "description": "The Operator metadata information", "allOf": [ { "$ref": "#/components/schemas/MetaData" } ] }, "config": { "title": "Config", "description": "The configuration information to run this operator", "allOf": [ { "$ref": "#/components/schemas/Config" } ] }, "functions": { "title": "Functions", "description": "List of Operator functions", "type": "array", "items": { "$ref": "#/components/schemas/Function" } }, "type": { "title": "Type", "default": "Operator", "type": "string", "pattern": "^Operator$", "readOnly": true } }, "required": [ "metadata", "config", "functions" ] } ], "title": "Operator", "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.", "discriminator": { "propertyName": "type" } }, "NewOperatorPackage": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "manifest": { "title": "Manifest", "description": "The Operator manifest to be created", "allOf": [ { "$ref": "#/components/schemas/Operator" } ] }, "readme": { "title": "Readme", "description": "The README file to attach to this package", "default": "", "type": "string" }, "license": { "title": "License", "description": "The license file to attach to this package", "default": "", "type": "string" }, "type": { "title": "Type", "default": "NewOperatorPackage", "type": "string", "pattern": "^NewOperatorPackage$", "readOnly": true } }, "required": [ "manifest" ] } ], "title": "NewOperatorPackage", "discriminator": { "propertyName": "type" } }, "ArgumentArtifact": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "name": { "title": "Name", "description": "The name of the artifact", "type": "string" }, "source": { "title": "Source", "description": "The source to pull the artifact from", "anyOf": [ { "$ref": "#/components/schemas/HTTPSource" }, { "$ref": "#/components/schemas/S3Source" }, { "$ref": "#/components/schemas/ProjectFolderSource" } ] }, "type": { "title": "Type", "default": "ArgumentArtifact", "type": "string", "pattern": "^ArgumentArtifact$", "readOnly": true } }, "required": [ "name", "source" ] } ], "title": "ArgumentArtifact", "description": "A workflow Artifact Argument", "discriminator": { "propertyName": "type" } }, "Arguments": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "parameters": { "title": "Parameters", "description": "A list of input parameters", "default": [], "type": "array", "items": { "$ref": "#/components/schemas/ArgumentParameter" } }, "artifacts": { "title": "Artifacts", "description": "A list of input artifacts", "default": [], "type": "array", "items": { "$ref": "#/components/schemas/ArgumentArtifact" } }, "type": { "title": "Type", "default": "Arguments", "type": "string", "pattern": "^Arguments$", "readOnly": true } } } ], "title": "Arguments", "description": "Workflow Arguments", "discriminator": { "propertyName": "type" } }, "TeamRoleEnum": { "title": "TeamRoleEnum", "description": "An enumeration.", "enum": [ "owner", "member" ], "type": "string" }, "TeamMember": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "user": { "title": "User", "description": "The team member", "allOf": [ { "$ref": "#/components/schemas/UserPublic" } ] }, "role": { "description": "The role the user has within the team", "allOf": [ { "$ref": "#/components/schemas/TeamRoleEnum" } ] }, "type": { "title": "Type", "default": "TeamMember", "type": "string", "pattern": "^TeamMember$", "readOnly": true } }, "required": [ "user", "role" ] } ], "title": "TeamMember", "discriminator": { "propertyName": "type" } }, "DependencyType": { "title": "DependencyType", "description": "An enumeration.", "enum": [ "recipe", "operator" ], "type": "string" }, "Dependency": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "type": { "description": "The type of dependency", "allOf": [ { "$ref": "#/components/schemas/DependencyType" } ], "readOnly": true }, "name": { "title": "Name", "description": "Workflow name. This name should be unique among all the resources in your resource. Use an alias if this is not the case.", "type": "string" }, "tag": { "title": "Tag", "description": "Tag of the resource.", "type": "string" }, "source": { "title": "Source", "description": "URL to a repository where this resource can be found.", "examples": [ "https://registry.pollination.cloud/ladybugbot", "https://some-random-user.github.io/registry" ], "type": "string" }, "hash": { "title": "Hash", "description": "The digest hash of the dependency when retrieved from its source. This is locked when the resource dependencies are downloaded.", "type": "string" }, "alias": { "title": "Alias", "description": "An optional alias to refer to this dependency. Useful if the name is already used somewhere else.", "type": "string" } }, "required": [ "type", "name", "tag", "source" ] } ], "title": "Dependency", "description": "Configuration to fetch a Recipe or Operator that another Recipe depends on.", "discriminator": { "propertyName": "type" } }, "Recipe": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "flow": { "title": "Flow", "description": "A list of tasks to create a DAG recipe.", "type": "array", "items": { "$ref": "#/components/schemas/DAG" } }, "metadata": { "title": "Metadata", "description": "Recipe metadata information.", "allOf": [ { "$ref": "#/components/schemas/MetaData" } ] }, "dependencies": { "title": "Dependencies", "description": "A list of operators and other recipes this recipe depends on.", "type": "array", "items": { "$ref": "#/components/schemas/Dependency" } }, "type": { "title": "Type", "default": "Recipe", "type": "string", "pattern": "^Recipe$", "readOnly": true } }, "required": [ "flow" ] } ], "title": "Recipe", "description": "A Queenbee Recipe", "discriminator": { "propertyName": "type" } }, "UserPublicList": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "properties": { "page": { "title": "Page", "description": "The current page the pagination request is on", "type": "integer", "format": "int32" }, "per_page": { "title": "Per Page", "description": "The number of pages per pagination request", "type": "integer", "format": "int32" }, "page_count": { "title": "Page Count", "description": "The total number of pages", "type": "integer", "format": "int32" }, "total_count": { "title": "Total Count", "description": "The total number of resources matching the list request", "type": "integer", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/UserPublic" } }, "next_page": { "title": "Next Page", "description": "The next page, if this on is not the last", "type": "integer", "format": "int32" }, "type": { "title": "Type", "default": "UserPublicList", "type": "string", "pattern": "^UserPublicList$", "readOnly": true } } } ], "title": "UserPublicList", "description": "A list response from a pagination request", "discriminator": { "propertyName": "type" } }, "OrganizationRoleEnum": { "title": "OrganizationRoleEnum", "description": "An enumeration.", "enum": [ "owner", "member" ], "type": "string" }, "Organization": { "allOf": [ { "$ref": "#/components/schemas/OrganizationUpdate" }, { "type": "object", "required": [ "id", "owner" ], "properties": { "id": { "title": "Id", "description": "The org ID", "example": "1eb8e60d-771d-4a30-8078-fe553eb2f0bc", "type": "string" }, "owner": { "title": "Owner", "description": "The account the organization represents", "example": { "id": "e4d0d922-2031-4b39-94d2-aa6d584d6bb2", "type": "org", "name": "ladybug-tools" }, "allOf": [ { "$ref": "#/components/schemas/AccountPublic" } ] }, "role": { "description": "The role the user has within the organization", "allOf": [ { "$ref": "#/components/schemas/OrganizationRoleEnum" } ] }, "member_count": { "title": "Member Count", "description": "The number of members that are part of this org", "default": 0, "example": 10, "type": "integer", "format": "int32" }, "team_count": { "title": "Team Count", "description": "The number of teams that are part of this org", "default": 0, "example": 3, "type": "integer", "format": "int32" }, "type": { "title": "Type", "default": "Organization", "type": "string", "pattern": "^Organization$", "readOnly": true } } } ], "title": "Organization", "discriminator": { "propertyName": "type" } }, "PolicySubject": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/SubjectType", "readOnly": true }, "name": { "title": "Name", "description": "The name of the policy subject", "example": "ladybugbot", "type": "string" } }, "required": [ "type", "name" ] } ], "title": "PolicySubject", "discriminator": { "propertyName": "type" } }, "Permission": { "title": "Permission", "description": "An enumeration.", "enum": [ "admin", "write", "read" ], "type": "string" }, "RepositoryAccessPolicy": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "required": [ "subject", "permission" ], "properties": { "subject": { "title": "Subject", "description": "The subject of the access policy", "allOf": [ { "$ref": "#/components/schemas/PolicySubject" } ] }, "permission": { "description": "The permission given to the subject of the access policy", "allOf": [ { "$ref": "#/components/schemas/Permission" } ] }, "type": { "title": "Type", "default": "RepositoryAccessPolicy", "type": "string", "pattern": "^RepositoryAccessPolicy$", "readOnly": true } } } ], "title": "RepositoryAccessPolicy", "discriminator": { "propertyName": "type" } }, "SimulationInputs": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "parameters": { "title": "Parameters", "description": "A list of input parameters", "default": [], "examples": [], "type": "array", "items": { "$ref": "#/components/schemas/SimulationInputParameter" } }, "artifacts": { "title": "Artifacts", "description": "A list of input artifacts", "default": [], "example": [], "type": "array", "items": { "$ref": "#/components/schemas/SimulationInputArtifact" } }, "type": { "title": "Type", "default": "SimulationInputs", "type": "string", "pattern": "^SimulationInputs$", "readOnly": true } } } ], "title": "SimulationInputs", "description": "Simulation Arguments", "discriminator": { "propertyName": "type" } }, "OperatorPackage": { "allOf": [ { "$ref": "#/components/schemas/RepositoryPackageAbriged" }, { "type": "object", "required": [ "manifest" ], "properties": { "manifest": { "title": "Manifest", "description": "The operator manifest", "allOf": [ { "$ref": "#/components/schemas/Operator" } ] }, "readme": { "title": "Readme", "description": "The Repository Readme", "example": "# Daylight Factor \n This recipe runs a daylight factor simulation.", "type": "string" }, "license": { "title": "License", "description": "The Repository license", "example": "No License", "type": "string" }, "type": { "title": "Type", "default": "OperatorPackage", "type": "string", "pattern": "^OperatorPackage$", "readOnly": true } } } ], "title": "OperatorPackage", "discriminator": { "propertyName": "type" } }, "UserMetadata": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "company": { "title": "Company", "description": "The company the user works for", "example": "Ladybug Tools", "type": "string" }, "description": { "title": "Description", "description": "A short description of the user", "example": "A bot user that helps automate things at Ladybug Tools!", "type": "string" }, "type": { "title": "Type", "default": "UserMetadata", "type": "string", "pattern": "^UserMetadata$", "readOnly": true } } } ], "title": "UserMetadata", "discriminator": { "propertyName": "type" } }, "UserPrivate": { "allOf": [ { "$ref": "#/components/schemas/UserPublic" }, { "type": "object", "required": [ "id" ], "properties": { "id": { "title": "Id", "type": "string" }, "metadata": { "$ref": "#/components/schemas/UserMetadata" }, "type": { "title": "Type", "default": "UserPrivate", "type": "string", "pattern": "^UserPrivate$", "readOnly": true } } } ], "title": "UserPrivate", "discriminator": { "propertyName": "type" } }, "StatusType": { "title": "StatusType", "description": "An enumeration.", "enum": [ "function", "dag", "loop" ], "type": "string" }, "TaskStatus": { "allOf": [ { "$ref": "#/components/schemas/BaseStatus" }, { "type": "object", "required": [ "id", "name", "type", "template_ref", "inputs", "outputs", "children", "outbound_tasks" ], "properties": { "id": { "title": "Id", "description": "The task unique ID", "type": "string" }, "name": { "title": "Name", "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": "string" }, "type": { "description": "The type of task this status is for. Can be \"function\", \"dag\" or \"loop\"", "allOf": [ { "$ref": "#/components/schemas/StatusType" } ], "readOnly": true }, "template_ref": { "title": "Template Ref", "description": "The name of the template that spawned this task", "type": "string" }, "inputs": { "title": "Inputs", "description": "The inputs used by this task", "allOf": [ { "$ref": "#/components/schemas/Arguments" } ] }, "outputs": { "title": "Outputs", "description": "The outputs produced by this task", "allOf": [ { "$ref": "#/components/schemas/Arguments" } ] }, "children": { "title": "Children", "description": "A list of child task IDs", "type": "array", "items": { "type": "string" } }, "outbound_tasks": { "title": "Outbound Tasks", "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.", "type": "array", "items": { "type": "string" } }, "command": { "title": "Command", "description": "The command used to run this task. Only applies to Function tasks.", "type": "string" }, "boundary_id": { "title": "Boundary Id", "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.", "type": "string" } } } ], "title": "TaskStatus", "description": "The Status of a Workflow Task", "discriminator": { "propertyName": "type" } }, "WorkflowStatus": { "allOf": [ { "$ref": "#/components/schemas/BaseStatus" }, { "type": "object", "required": [ "id" ], "properties": { "id": { "title": "Id", "description": "The ID of the individual workflow run.", "type": "string" }, "entrypoint": { "title": "Entrypoint", "description": "The ID of the first task in the workflow", "type": "string" }, "tasks": { "title": "Tasks", "default": {}, "type": "object", "additionalProperties": { "$ref": "#/components/schemas/TaskStatus" } }, "type": { "title": "Type", "default": "WorkflowStatus", "type": "string", "pattern": "^WorkflowStatus$", "readOnly": true } } } ], "title": "WorkflowStatus", "description": "Workflow Status", "discriminator": { "propertyName": "type" } }, "SimulationList": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "properties": { "page": { "title": "Page", "description": "The current page the pagination request is on", "type": "integer", "format": "int32" }, "per_page": { "title": "Per Page", "description": "The number of pages per pagination request", "type": "integer", "format": "int32" }, "page_count": { "title": "Page Count", "description": "The total number of pages", "type": "integer", "format": "int32" }, "total_count": { "title": "Total Count", "description": "The total number of resources matching the list request", "type": "integer", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/WorkflowStatus" } }, "next_page": { "title": "Next Page", "description": "The next page, if this on is not the last", "type": "integer", "format": "int32" }, "type": { "title": "Type", "default": "SimulationList", "type": "string", "pattern": "^SimulationList$", "readOnly": true } } } ], "title": "SimulationList", "description": "A list response from a pagination request", "discriminator": { "propertyName": "type" } }, "ProjectUserPermissions": { "allOf": [ { "$ref": "#/components/schemas/UserPermission" }, { "type": "object", "properties": { "type": { "title": "Type", "default": "ProjectUserPermissions", "type": "string", "pattern": "^ProjectUserPermissions$", "readOnly": true } } } ], "title": "ProjectUserPermissions", "discriminator": { "propertyName": "type" } }, "ProjectCreate": { "allOf": [ { "$ref": "#/components/schemas/ProjectUpdate" }, { "type": "object", "properties": { "type": { "title": "Type", "default": "ProjectCreate", "type": "string", "pattern": "^ProjectCreate$", "readOnly": true } } } ], "title": "ProjectCreate", "discriminator": { "propertyName": "type" } }, "ProjectRecipeFilter": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "owner": { "title": "Owner", "description": "The name of the account the recipe belongs to", "example": "ladybug-tools", "type": "string" }, "name": { "title": "Name", "description": "The name of the recipe", "example": "daylight-factor", "type": "string" }, "tag": { "title": "Tag", "description": "The specific recipe tag", "example": "0.2.1", "type": "string" }, "type": { "title": "Type", "default": "ProjectRecipeFilter", "type": "string", "pattern": "^ProjectRecipeFilter$", "readOnly": true } }, "required": [ "owner", "name" ] } ], "title": "ProjectRecipeFilter", "discriminator": { "propertyName": "type" } }, "OrganizationList": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "properties": { "page": { "title": "Page", "description": "The current page the pagination request is on", "type": "integer", "format": "int32" }, "per_page": { "title": "Per Page", "description": "The number of pages per pagination request", "type": "integer", "format": "int32" }, "page_count": { "title": "Page Count", "description": "The total number of pages", "type": "integer", "format": "int32" }, "total_count": { "title": "Total Count", "description": "The total number of resources matching the list request", "type": "integer", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/Organization" } }, "next_page": { "title": "Next Page", "description": "The next page, if this on is not the last", "type": "integer", "format": "int32" }, "type": { "title": "Type", "default": "OrganizationList", "type": "string", "pattern": "^OrganizationList$", "readOnly": true } } } ], "title": "OrganizationList", "description": "A list response from a pagination request", "discriminator": { "propertyName": "type" } }, "RepositoryAccessPolicyList": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "properties": { "page": { "title": "Page", "description": "The current page the pagination request is on", "type": "integer", "format": "int32" }, "per_page": { "title": "Per Page", "description": "The number of pages per pagination request", "type": "integer", "format": "int32" }, "page_count": { "title": "Page Count", "description": "The total number of pages", "type": "integer", "format": "int32" }, "total_count": { "title": "Total Count", "description": "The total number of resources matching the list request", "type": "integer", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/RepositoryAccessPolicy" } }, "next_page": { "title": "Next Page", "description": "The next page, if this on is not the last", "type": "integer", "format": "int32" }, "type": { "title": "Type", "default": "RepositoryAccessPolicyList", "type": "string", "pattern": "^RepositoryAccessPolicyList$", "readOnly": true } } } ], "title": "RepositoryAccessPolicyList", "description": "A list response from a pagination request", "discriminator": { "propertyName": "type" } }, "RepositoryMetadata": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "name": { "title": "Name", "description": "The name of the repository", "type": "string" }, "description": { "title": "Description", "description": "A short description of the repository", "default": "A Queenbee package repository", "type": "string" }, "source": { "title": "Source", "description": "The source path (url or local) to the repository", "type": "string" }, "operator_count": { "title": "Operator Count", "description": "The number of operators hosted by the repository", "default": 0, "type": "integer", "format": "int32" }, "recipe_count": { "title": "Recipe Count", "description": "The number of recipes hosted by the repository", "default": 0, "type": "integer", "format": "int32" }, "type": { "title": "Type", "default": "RepositoryMetadata", "type": "string", "pattern": "^RepositoryMetadata$", "readOnly": true } } } ], "title": "RepositoryMetadata", "description": "BaseModel with functionality to return the object as a yaml string\n\n ", "discriminator": { "propertyName": "type" } }, "PackageVersion": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "required": [ "name", "tag", "url", "created", "digest" ], "properties": { "name": { "title": "Name", "description": "Package name. Make it descriptive and helpful ;)", "type": "string" }, "tag": { "title": "Tag", "description": "The tag of the package", "type": "string" }, "url": { "title": "Url", "type": "string" }, "created": { "title": "Created", "type": "string", "format": "date-time" }, "digest": { "title": "Digest", "type": "string" }, "app_version": { "title": "App Version", "description": "The version of the application code underlying the manifest", "type": "string" }, "keywords": { "title": "Keywords", "description": "A list of keywords to search the package by", "type": "array", "items": { "type": "string" } }, "maintainers": { "title": "Maintainers", "description": "A list of maintainers for the package", "type": "array", "items": { "$ref": "#/components/schemas/Maintainer" } }, "home": { "title": "Home", "description": "The URL of this package's home page", "type": "string" }, "sources": { "title": "Sources", "description": "A list of URLs to source code for this project", "type": "array", "items": { "type": "string" } }, "icon": { "title": "Icon", "description": "A URL to an SVG or PNG image to be used as an icon", "type": "string" }, "deprecated": { "title": "Deprecated", "description": "Whether this package is deprecated", "type": "boolean" }, "description": { "title": "Description", "description": "A description of what this package does", "type": "string" }, "license": { "title": "License", "description": "The License file string for this package", "type": "string" }, "slug": { "title": "Slug", "description": "A slug of the repository name and the package name.", "type": "string" }, "readme": { "title": "Readme", "description": "The README file string for this package", "type": "string" }, "manifest": { "title": "Manifest", "description": "The package Recipe or Operator manifest", "anyOf": [ { "$ref": "#/components/schemas/Recipe" }, { "$ref": "#/components/schemas/Operator" } ] }, "type": { "title": "Type", "description": "The type of Queenbee package (ie: recipe or operator)", "default": "", "type": "string", "readOnly": true } } } ], "title": "PackageVersion", "description": "Package Version\n\nA MetaData object to distinguish a specific package version within a repository\nindex.", "discriminator": { "propertyName": "type" } }, "RepositoryIndex": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "generated": { "title": "Generated", "description": "The timestamp at which the index was generated", "type": "string", "format": "date-time" }, "metadata": { "title": "Metadata", "description": "Extra information about the repository", "default": { "name": null, "description": "A Queenbee package repository", "source": null, "operator_count": 0, "recipe_count": 0 }, "allOf": [ { "$ref": "#/components/schemas/RepositoryMetadata" } ] }, "operator": { "title": "Operator", "description": "A dict of operators accessible by name. Each name key points to a list of operator versions", "default": {}, "type": "object", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/PackageVersion" } } }, "recipe": { "title": "Recipe", "description": "A dict of recipes accessible by name. Each name key points to a list of recipesversions", "default": {}, "type": "object", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/PackageVersion" } } }, "type": { "title": "Type", "default": "RepositoryIndex", "type": "string", "pattern": "^RepositoryIndex$", "readOnly": true } } } ], "title": "RepositoryIndex", "description": "A searchable index for a Queenbee Operator and Recipe repository", "discriminator": { "propertyName": "type" } }, "FileMeta": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "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" } }, "required": [ "key", "type", "file_name" ] } ], "title": "FileMeta", "discriminator": { "propertyName": "type" } }, "Body_post_operator_registries__owner__operators_post": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "package": { "title": "Operator Package", "type": "string", "format": "binary" }, "type": { "title": "Type", "default": "Body_post_operator_registries__owner__operators_post", "type": "string", "pattern": "^Body_post_operator_registries__owner__operators_post$", "readOnly": true } }, "required": [ "package" ] } ], "title": "Body_post_operator_registries__owner__operators_post", "discriminator": { "propertyName": "type" } }, "RecipeSelection": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "owner": { "title": "Owner", "description": "Name of the owner of the recipe", "example": "ladybug-tools", "type": "string" }, "name": { "title": "Name", "description": "Name of the recipe", "example": "daylight-factor", "type": "string" }, "tag": { "title": "Tag", "description": "The specific tag of the recipe to use", "default": "latest", "example": "0.2.1", "type": "string" }, "digest": { "title": "Digest", "description": "The specific digest of the recipe to use", "type": "string" }, "type": { "title": "Type", "default": "RecipeSelection", "type": "string", "pattern": "^RecipeSelection$", "readOnly": true } }, "required": [ "owner", "name" ] } ], "title": "RecipeSelection", "discriminator": { "propertyName": "type" } }, "SubmitSimulation": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "recipe": { "title": "Recipe", "description": "The recipe to use", "allOf": [ { "$ref": "#/components/schemas/RecipeSelection" } ] }, "inputs": { "title": "Inputs", "description": "Simulation inputs", "default": { "parameters": [], "artifacts": [] }, "example": { "parameters": [ { "name": "bounces", "value": 5 } ], "artifacts": [ { "name": "model", "source": { "type": "project-folder", "path": "path/to/model.hbjson" } } ] }, "allOf": [ { "$ref": "#/components/schemas/SimulationInputs" } ] }, "type": { "title": "Type", "default": "SubmitSimulation", "type": "string", "pattern": "^SubmitSimulation$", "readOnly": true } }, "required": [ "recipe" ] } ], "title": "SubmitSimulation", "discriminator": { "propertyName": "type" } }, "RepositoryUserPermissions": { "allOf": [ { "$ref": "#/components/schemas/UserPermission" }, { "type": "object", "properties": { "type": { "title": "Type", "default": "RepositoryUserPermissions", "type": "string", "pattern": "^RepositoryUserPermissions$", "readOnly": true } } } ], "title": "RepositoryUserPermissions", "discriminator": { "propertyName": "type" } }, "Repository": { "allOf": [ { "$ref": "#/components/schemas/RepositoryCreate" }, { "type": "object", "required": [ "id", "latest_tag", "owner" ], "properties": { "id": { "title": "Id", "description": "The recipe unique ID", "example": "5d5e7103-2c1e-413f-9332-f8ec4a9aace7", "type": "string" }, "latest_tag": { "title": "Latest Tag", "description": "The latest package version to be indexed", "example": "0.2.1", "type": "string" }, "owner": { "title": "Owner", "description": "The owner of the repository", "allOf": [ { "$ref": "#/components/schemas/AccountPublic" } ] }, "permissions": { "title": "Permissions", "description": "The permissions the user making the API call has on the resource", "default": { "admin": false, "write": false, "read": false }, "allOf": [ { "$ref": "#/components/schemas/RepositoryUserPermissions" } ] }, "slug": { "title": "Slug", "description": "The repository slug", "example": "ladybug-tools/daylight-factor", "type": "string" }, "type": { "title": "Type", "default": "Repository", "type": "string", "pattern": "^Repository$", "readOnly": true } } } ], "title": "Repository", "discriminator": { "propertyName": "type" } }, "OrganizationMember": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "user": { "title": "User", "description": "The organization member", "allOf": [ { "$ref": "#/components/schemas/UserPublic" } ] }, "role": { "description": "The role the user has within the organization", "allOf": [ { "$ref": "#/components/schemas/OrganizationRoleEnum" } ] }, "type": { "title": "Type", "default": "OrganizationMember", "type": "string", "pattern": "^OrganizationMember$", "readOnly": true } }, "required": [ "user", "role" ] } ], "title": "OrganizationMember", "discriminator": { "propertyName": "type" } }, "TeamMemberList": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "properties": { "page": { "title": "Page", "description": "The current page the pagination request is on", "type": "integer", "format": "int32" }, "per_page": { "title": "Per Page", "description": "The number of pages per pagination request", "type": "integer", "format": "int32" }, "page_count": { "title": "Page Count", "description": "The total number of pages", "type": "integer", "format": "int32" }, "total_count": { "title": "Total Count", "description": "The total number of resources matching the list request", "type": "integer", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/TeamMember" } }, "next_page": { "title": "Next Page", "description": "The next page, if this on is not the last", "type": "integer", "format": "int32" }, "type": { "title": "Type", "default": "TeamMemberList", "type": "string", "pattern": "^TeamMemberList$", "readOnly": true } } } ], "title": "TeamMemberList", "description": "A list response from a pagination request", "discriminator": { "propertyName": "type" } }, "KeyRequest": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "key": { "title": "Key", "type": "string" }, "type": { "title": "Type", "default": "KeyRequest", "type": "string", "pattern": "^KeyRequest$", "readOnly": true } }, "required": [ "key" ] } ], "title": "KeyRequest", "discriminator": { "propertyName": "type" } }, "ProjectAccessPolicy": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "required": [ "subject", "permission" ], "properties": { "subject": { "title": "Subject", "description": "The subject of the access policy", "allOf": [ { "$ref": "#/components/schemas/PolicySubject" } ] }, "permission": { "description": "The permission given to the subject of the access policy", "allOf": [ { "$ref": "#/components/schemas/Permission" } ] }, "type": { "title": "Type", "default": "ProjectAccessPolicy", "type": "string", "pattern": "^ProjectAccessPolicy$", "readOnly": true } } } ], "title": "ProjectAccessPolicy", "discriminator": { "propertyName": "type" } }, "ProjectAccessPolicyList": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "properties": { "page": { "title": "Page", "description": "The current page the pagination request is on", "type": "integer", "format": "int32" }, "per_page": { "title": "Per Page", "description": "The number of pages per pagination request", "type": "integer", "format": "int32" }, "page_count": { "title": "Page Count", "description": "The total number of pages", "type": "integer", "format": "int32" }, "total_count": { "title": "Total Count", "description": "The total number of resources matching the list request", "type": "integer", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/ProjectAccessPolicy" } }, "next_page": { "title": "Next Page", "description": "The next page, if this on is not the last", "type": "integer", "format": "int32" }, "type": { "title": "Type", "default": "ProjectAccessPolicyList", "type": "string", "pattern": "^ProjectAccessPolicyList$", "readOnly": true } } } ], "title": "ProjectAccessPolicyList", "description": "A list response from a pagination request", "discriminator": { "propertyName": "type" } }, "Team": { "allOf": [ { "$ref": "#/components/schemas/TeamUpdate" }, { "type": "object", "required": [ "id", "slug" ], "properties": { "id": { "title": "Id", "description": "The team ID", "example": "142ee933-6110-4186-92ab-92df359aa108", "type": "string" }, "slug": { "title": "Slug", "description": "The slug of the team", "example": "honeybee-contributors", "type": "string" }, "member_count": { "title": "Member Count", "description": "The number of members that are part of this team", "default": 0, "example": 5, "type": "integer", "format": "int32" }, "type": { "title": "Type", "default": "Team", "type": "string", "pattern": "^Team$", "readOnly": true } } } ], "title": "Team", "discriminator": { "propertyName": "type" } }, "RecipePackage": { "allOf": [ { "$ref": "#/components/schemas/RepositoryPackageAbriged" }, { "type": "object", "required": [ "manifest" ], "properties": { "manifest": { "title": "Manifest", "description": "The recipe manifest", "allOf": [ { "$ref": "#/components/schemas/Recipe" } ] }, "readme": { "title": "Readme", "description": "The Repository Readme", "example": "# Daylight Factor \n This recipe runs a daylight factor simulation.", "type": "string" }, "license": { "title": "License", "description": "The Repository license", "example": "No License", "type": "string" }, "type": { "title": "Type", "default": "RecipePackage", "type": "string", "pattern": "^RecipePackage$", "readOnly": true } } } ], "title": "RecipePackage", "discriminator": { "propertyName": "type" } }, "Project": { "allOf": [ { "$ref": "#/components/schemas/ProjectCreate" }, { "type": "object", "required": [ "id", "owner", "permissions", "slug" ], "properties": { "id": { "title": "Id", "description": "The project ID", "example": "50bb7fe0-8f19-499e-972e-1ebec8af2c71", "type": "string" }, "owner": { "$ref": "#/components/schemas/AccountPublic" }, "permissions": { "$ref": "#/components/schemas/ProjectUserPermissions" }, "slug": { "title": "Slug", "description": "The project name in slug format", "example": "project-falcon", "type": "string" }, "type": { "title": "Type", "default": "Project", "type": "string", "pattern": "^Project$", "readOnly": true } } } ], "title": "Project", "discriminator": { "propertyName": "type" } }, "ProjectRecipeFilterList": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "properties": { "page": { "title": "Page", "description": "The current page the pagination request is on", "type": "integer", "format": "int32" }, "per_page": { "title": "Per Page", "description": "The number of pages per pagination request", "type": "integer", "format": "int32" }, "page_count": { "title": "Page Count", "description": "The total number of pages", "type": "integer", "format": "int32" }, "total_count": { "title": "Total Count", "description": "The total number of resources matching the list request", "type": "integer", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/ProjectRecipeFilter" } }, "next_page": { "title": "Next Page", "description": "The next page, if this on is not the last", "type": "integer", "format": "int32" }, "type": { "title": "Type", "default": "ProjectRecipeFilterList", "type": "string", "pattern": "^ProjectRecipeFilterList$", "readOnly": true } } } ], "title": "ProjectRecipeFilterList", "description": "A list response from a pagination request", "discriminator": { "propertyName": "type" } }, "Body_post_recipe_registries__owner__recipes_post": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "package": { "title": "Recipe Package", "type": "string", "format": "binary" }, "type": { "title": "Type", "default": "Body_post_recipe_registries__owner__recipes_post", "type": "string", "pattern": "^Body_post_recipe_registries__owner__recipes_post$", "readOnly": true } }, "required": [ "package" ] } ], "title": "Body_post_recipe_registries__owner__recipes_post", "discriminator": { "propertyName": "type" } }, "ProjectPolicySubject": { "allOf": [ { "$ref": "#/components/schemas/PolicySubject" }, { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/SubjectType", "readOnly": true } } } ], "title": "ProjectPolicySubject", "discriminator": { "propertyName": "type" } }, "RepositoryUpdate": { "allOf": [ { "$ref": "#/components/schemas/Update" }, { "type": "object", "properties": { "type": { "title": "Type", "default": "RepositoryUpdate", "type": "string", "pattern": "^RepositoryUpdate$", "readOnly": true } } } ], "title": "RepositoryUpdate", "discriminator": { "propertyName": "type" } }, "TeamCreate": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "name": { "title": "Name", "example": "Honeybee Contributors", "type": "string" }, "description": { "title": "Description", "example": "The Honeybee team works on all things energy modelling", "type": "string" }, "type": { "title": "Type", "default": "TeamCreate", "type": "string", "pattern": "^TeamCreate$", "readOnly": true } }, "required": [ "name" ] } ], "title": "TeamCreate", "discriminator": { "propertyName": "type" } }, "OrganizationMemberList": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "properties": { "page": { "title": "Page", "description": "The current page the pagination request is on", "type": "integer", "format": "int32" }, "per_page": { "title": "Per Page", "description": "The number of pages per pagination request", "type": "integer", "format": "int32" }, "page_count": { "title": "Page Count", "description": "The total number of pages", "type": "integer", "format": "int32" }, "total_count": { "title": "Total Count", "description": "The total number of resources matching the list request", "type": "integer", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/OrganizationMember" } }, "next_page": { "title": "Next Page", "description": "The next page, if this on is not the last", "type": "integer", "format": "int32" }, "type": { "title": "Type", "default": "OrganizationMemberList", "type": "string", "pattern": "^OrganizationMemberList$", "readOnly": true } } } ], "title": "OrganizationMemberList", "description": "A list response from a pagination request", "discriminator": { "propertyName": "type" } }, "APITokenCreate": { "allOf": [ { "$ref": "#/components/schemas/APIToken" }, { "type": "object", "properties": { "type": { "title": "Type", "default": "APITokenCreate", "type": "string", "pattern": "^APITokenCreate$", "readOnly": true } } } ], "title": "APITokenCreate", "discriminator": { "propertyName": "type" } }, "CreatedContent": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "id": { "title": "Id", "description": "Id for the newly created resource.", "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "string", "format": "uuid" }, "message": { "title": "Message", "description": " A human readable message", "example": "Use Location in headers to access the new object.", "type": "string" }, "type": { "title": "Type", "default": "CreatedContent", "type": "string", "pattern": "^CreatedContent$", "readOnly": true } }, "required": [ "id" ] } ], "title": "CreatedContent", "description": "Content for created response.", "discriminator": { "propertyName": "type" } }, "RepositoryList": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "properties": { "page": { "title": "Page", "description": "The current page the pagination request is on", "type": "integer", "format": "int32" }, "per_page": { "title": "Per Page", "description": "The number of pages per pagination request", "type": "integer", "format": "int32" }, "page_count": { "title": "Page Count", "description": "The total number of pages", "type": "integer", "format": "int32" }, "total_count": { "title": "Total Count", "description": "The total number of resources matching the list request", "type": "integer", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/Repository" } }, "next_page": { "title": "Next Page", "description": "The next page, if this on is not the last", "type": "integer", "format": "int32" }, "type": { "title": "Type", "default": "RepositoryList", "type": "string", "pattern": "^RepositoryList$", "readOnly": true } } } ], "title": "RepositoryList", "description": "A list response from a pagination request", "discriminator": { "propertyName": "type" } }, "S3UploadRequest": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "url": { "title": "Url", "type": "string" }, "fields": { "title": "Fields", "type": "object", "additionalProperties": { "type": "string" } }, "type": { "title": "Type", "default": "S3UploadRequest", "type": "string", "pattern": "^S3UploadRequest$", "readOnly": true } }, "required": [ "url", "fields" ] } ], "title": "S3UploadRequest", "discriminator": { "propertyName": "type" } }, "TeamList": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "properties": { "page": { "title": "Page", "description": "The current page the pagination request is on", "type": "integer", "format": "int32" }, "per_page": { "title": "Per Page", "description": "The number of pages per pagination request", "type": "integer", "format": "int32" }, "page_count": { "title": "Page Count", "description": "The total number of pages", "type": "integer", "format": "int32" }, "total_count": { "title": "Total Count", "description": "The total number of resources matching the list request", "type": "integer", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/Team" } }, "next_page": { "title": "Next Page", "description": "The next page, if this on is not the last", "type": "integer", "format": "int32" }, "type": { "title": "Type", "default": "TeamList", "type": "string", "pattern": "^TeamList$", "readOnly": true } } } ], "title": "TeamList", "description": "A list response from a pagination request", "discriminator": { "propertyName": "type" } }, "ProjectUpdate": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "name": { "title": "Name", "description": "The name of the project. Must be unique to a given owner", "example": "Project Falcon", "type": "string" }, "description": { "title": "Description", "description": "A description of the project", "default": "", "example": "I always wanted to have a project called project Falcon", "type": "string" }, "public": { "title": "Public", "description": "Whether or not a project is publicly viewable", "default": true, "type": "boolean" }, "type": { "title": "Type", "default": "ProjectUpdate", "type": "string", "pattern": "^ProjectUpdate$", "readOnly": true } }, "required": [ "name" ] } ], "title": "ProjectUpdate", "discriminator": { "propertyName": "type" } }, "RepositoryPackageAbriged": { "allOf": [ { "$ref": "#/components/schemas/PackageAbridged" }, { "type": "object", "properties": { "type": { "title": "Type", "default": "RepositoryPackageAbriged", "type": "string", "pattern": "^RepositoryPackageAbriged$", "readOnly": true } } } ], "title": "RepositoryPackageAbriged", "discriminator": { "propertyName": "type" } }, "RepositoryPackageList": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "properties": { "page": { "title": "Page", "description": "The current page the pagination request is on", "type": "integer", "format": "int32" }, "per_page": { "title": "Per Page", "description": "The number of pages per pagination request", "type": "integer", "format": "int32" }, "page_count": { "title": "Page Count", "description": "The total number of pages", "type": "integer", "format": "int32" }, "total_count": { "title": "Total Count", "description": "The total number of resources matching the list request", "type": "integer", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/RepositoryPackageAbriged" } }, "next_page": { "title": "Next Page", "description": "The next page, if this on is not the last", "type": "integer", "format": "int32" }, "type": { "title": "Type", "default": "RepositoryPackageList", "type": "string", "pattern": "^RepositoryPackageList$", "readOnly": true } } } ], "title": "RepositoryPackageList", "description": "A list response from a pagination request", "discriminator": { "propertyName": "type" } }, "Simulation": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStatus" }, { "type": "object", "required": [ "recipe", "owner" ], "properties": { "recipe": { "title": "Recipe", "description": "The recipe to use", "allOf": [ { "$ref": "#/components/schemas/RecipeSelection" } ] }, "owner": { "$ref": "#/components/schemas/AccountPublic" }, "inputs": { "title": "Inputs", "description": "Simulation inputs", "default": { "parameters": [], "artifacts": [] }, "example": { "parameters": [ { "name": "bounces", "value": 5 } ], "artifacts": [ { "name": "model", "source": { "type": "project-folder", "path": "path/to/model.hbjson" } } ] }, "allOf": [ { "$ref": "#/components/schemas/SimulationInputs" } ] }, "parallelism": { "title": "Parallelism", "description": "The max number of parallel tasks allowed for this simulation", "type": "integer", "format": "int32" }, "type": { "title": "Type", "default": "Simulation", "type": "string", "pattern": "^Simulation$", "readOnly": true } } } ], "title": "Simulation", "description": "Workflow Status", "discriminator": { "propertyName": "type" } }, "Accepted": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "url": { "title": "Url", "description": "Url to access the requested resource.", "minLength": 1, "maxLength": 2083, "format": "uri", "type": "string" }, "message": { "title": "Message", "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.", "type": "string" }, "type": { "title": "Type", "default": "Accepted", "type": "string", "pattern": "^Accepted$", "readOnly": true } }, "required": [ "url" ] } ], "title": "Accepted", "description": "Accepted request response.", "discriminator": { "propertyName": "type" } }, "TeamUpdate": { "allOf": [ { "$ref": "#/components/schemas/TeamCreate" }, { "type": "object", "properties": { "type": { "title": "Type", "default": "TeamUpdate", "type": "string", "pattern": "^TeamUpdate$", "readOnly": true } } } ], "title": "TeamUpdate", "discriminator": { "propertyName": "type" } }, "RepositoryCreate": { "allOf": [ { "$ref": "#/components/schemas/RepositoryUpdate" }, { "type": "object", "required": [ "name" ], "properties": { "name": { "title": "Name", "description": "The name of the repository", "example": "daylight-factor", "type": "string" }, "type": { "title": "Type", "default": "RepositoryCreate", "type": "string", "pattern": "^RepositoryCreate$", "readOnly": true } } } ], "title": "RepositoryCreate", "discriminator": { "propertyName": "type" } }, "ProjectList": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "properties": { "page": { "title": "Page", "description": "The current page the pagination request is on", "type": "integer", "format": "int32" }, "per_page": { "title": "Per Page", "description": "The number of pages per pagination request", "type": "integer", "format": "int32" }, "page_count": { "title": "Page Count", "description": "The total number of pages", "type": "integer", "format": "int32" }, "total_count": { "title": "Total Count", "description": "The total number of resources matching the list request", "type": "integer", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/Project" } }, "next_page": { "title": "Next Page", "description": "The next page, if this on is not the last", "type": "integer", "format": "int32" }, "type": { "title": "Type", "default": "ProjectList", "type": "string", "pattern": "^ProjectList$", "readOnly": true } } } ], "title": "ProjectList", "description": "A list response from a pagination request", "discriminator": { "propertyName": "type" } }, "OrganizationUpdate": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "name": { "title": "Name", "description": "The display name for this org", "example": "Ladybug Tools", "type": "string" }, "picture": { "title": "Picture", "description": "URL to the picture associated with this org", "example": "https://avatars1.githubusercontent.com/u/38131342", "type": "string" }, "contact_email": { "title": "Contact Email", "description": "The contact email for the Organization", "example": "info@ladybug.tools", "type": "string" }, "description": { "title": "Description", "description": "A description of the org", "default": "", "example": "Making environmental design knowledge and tools freely accessible to every person, project and design process", "type": "string" }, "type": { "title": "Type", "default": "OrganizationUpdate", "type": "string", "pattern": "^OrganizationUpdate$", "readOnly": true } }, "required": [ "name", "picture", "contact_email" ] } ], "title": "OrganizationUpdate", "discriminator": { "propertyName": "type" } }, "NewRecipePackage": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "manifest": { "title": "Manifest", "description": "The Recipe manifest to be created", "allOf": [ { "$ref": "#/components/schemas/Recipe" } ] }, "readme": { "title": "Readme", "description": "The README file to attach to this package", "default": "", "type": "string" }, "license": { "title": "License", "description": "The license file to attach to this package", "default": "", "type": "string" }, "type": { "title": "Type", "default": "NewRecipePackage", "type": "string", "pattern": "^NewRecipePackage$", "readOnly": true } }, "required": [ "manifest" ] } ], "title": "NewRecipePackage", "discriminator": { "propertyName": "type" } }, "APITokenPrivate": { "allOf": [ { "$ref": "#/components/schemas/APITokenCreate" }, { "type": "object", "required": [ "token" ], "properties": { "token": { "title": "Token", "description": "The decoded API token", "type": "string" }, "type": { "title": "Type", "default": "APITokenPrivate", "type": "string", "pattern": "^APITokenPrivate$", "readOnly": true } } } ], "title": "APITokenPrivate", "discriminator": { "propertyName": "type" } }, "IOItem": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "name": { "title": "Name", "type": "string" }, "type": { "title": "Type", "default": "IOItem", "type": "string", "pattern": "^IOItem$", "readOnly": true } }, "required": [ "name" ] } ], "title": "IOItem", "description": "BaseModel with functionality to return the object as a yaml string\n\n ", "discriminator": { "propertyName": "type" } }, "IOBase": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "parameters": { "title": "Parameters", "type": "array", "items": { "$ref": "#/components/schemas/IOItem" } }, "artifacts": { "title": "Artifacts", "type": "array", "items": { "$ref": "#/components/schemas/IOItem" } }, "type": { "title": "Type", "default": "IOBase", "type": "string", "pattern": "^IOBase$", "readOnly": true } }, "required": [ "parameters", "artifacts" ] } ], "title": "IOBase", "description": "A reusable model for Input and Output (IO) objects.\n\nIOBase is used within Operators, Recipes and Workflows.", "discriminator": { "propertyName": "type" } }, "_DAGInputsBase": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "annotations": { "title": "Annotations", "description": "Optional annotations for Queenbee objects.", "type": "object", "additionalProperties": { "type": "string" } }, "type": { "title": "Type", "default": "_DAGInputsBase", "type": "string", "pattern": "^_DAGInputsBase$", "readOnly": true } } } ], "title": "_DAGInputsBase", "description": "BaseModel with functionality to return the object as a yaml string\n\n ", "discriminator": { "propertyName": "type" } }, "BaseReference": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "type": { "title": "Type", "default": "BaseReference", "type": "string", "pattern": "^BaseReference$", "readOnly": true } } } ], "title": "BaseReference", "description": "A Base reference model", "discriminator": { "propertyName": "type" } }, "InputBaseReference": { "allOf": [ { "$ref": "#/components/schemas/BaseReference" }, { "type": "object", "required": [ "variable" ], "properties": { "variable": { "title": "Variable", "description": "The name of the DAG input variable", "type": "string" }, "type": { "default": "inputs", "allOf": [ { "$ref": "#/components/schemas/InputReference" } ], "readOnly": true } } } ], "title": "InputBaseReference", "description": "An Input Reference", "discriminator": { "propertyName": "type" } }, "ArtifactSource": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "type": { "title": "Type", "default": "ArtifactSource", "type": "string", "pattern": "^ArtifactSource$", "readOnly": true } } } ], "title": "ArtifactSource", "description": "ArtifactSource.\n\nAn Artifact Source System.", "discriminator": { "propertyName": "type" } }, "ListResponseMeta": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "page": { "title": "Page", "description": "The current page the pagination request is on", "type": "integer", "format": "int32" }, "per_page": { "title": "Per Page", "description": "The number of pages per pagination request", "type": "integer", "format": "int32" }, "page_count": { "title": "Page Count", "description": "The total number of pages", "type": "integer", "format": "int32" }, "total_count": { "title": "Total Count", "description": "The total number of resources matching the list request", "type": "integer", "format": "int32" }, "next_page": { "title": "Next Page", "description": "The next page, if this on is not the last", "type": "integer", "format": "int32" }, "resources": { "title": "Resources", "description": "The list of resources returned from the list query", "default": [], "type": "array", "items": {} }, "type": { "title": "Type", "default": "ListResponseMeta", "type": "string", "pattern": "^ListResponseMeta$", "readOnly": true } }, "required": [ "page", "per_page", "page_count", "total_count" ] } ], "title": "ListResponseMeta", "description": "A list response from a pagination request", "discriminator": { "propertyName": "type" } }, "ItemBaseReference": { "allOf": [ { "$ref": "#/components/schemas/BaseReference" }, { "type": "object", "properties": { "type": { "default": "item", "allOf": [ { "$ref": "#/components/schemas/ItemReference" } ], "readOnly": true }, "variable": { "title": "Variable", "description": "The name of the looped item variable (use dot notation for nested json values)", "type": "string" } } } ], "title": "ItemBaseReference", "description": "An Item Reference.", "discriminator": { "propertyName": "type" } }, "AccessPolicy": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "subject": { "title": "Subject", "description": "The subject of the access policy", "allOf": [ { "$ref": "#/components/schemas/PolicySubject" } ] }, "permission": { "description": "The permission given to the subject of the access policy", "allOf": [ { "$ref": "#/components/schemas/Permission" } ] }, "type": { "title": "Type", "default": "AccessPolicy", "type": "string", "pattern": "^AccessPolicy$", "readOnly": true } }, "required": [ "subject", "permission" ] } ], "title": "AccessPolicy", "discriminator": { "propertyName": "type" } }, "RepositoryPackage": { "allOf": [ { "$ref": "#/components/schemas/RepositoryPackageAbriged" }, { "type": "object", "required": [ "manifest" ], "properties": { "manifest": { "title": "Manifest", "description": "The Repository manifest", "anyOf": [ { "$ref": "#/components/schemas/Recipe" }, { "$ref": "#/components/schemas/Operator" } ] }, "readme": { "title": "Readme", "description": "The Repository Readme", "example": "# Daylight Factor \n This recipe runs a daylight factor simulation.", "type": "string" }, "license": { "title": "License", "description": "The Repository license", "example": "No License", "type": "string" }, "type": { "title": "Type", "default": "RepositoryPackage", "type": "string", "pattern": "^RepositoryPackage$", "readOnly": true } } } ], "title": "RepositoryPackage", "discriminator": { "propertyName": "type" } }, "PackageAbridged": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "digest": { "title": "Digest", "description": "The new package digest", "type": "string" }, "tag": { "title": "Tag", "description": "The new package tag", "type": "string" }, "keywords": { "title": "Keywords", "description": "keywords", "type": "array", "items": { "type": "string" } }, "description": { "title": "Description", "description": "description", "type": "string" }, "icon": { "title": "Icon", "description": "icon", "type": "string" }, "created_at": { "title": "Created At", "description": "Creation Timestamp", "type": "string", "format": "date-time" }, "type": { "title": "Type", "default": "PackageAbridged", "type": "string", "pattern": "^PackageAbridged$", "readOnly": true } }, "required": [ "digest", "tag" ] } ], "title": "PackageAbridged", "discriminator": { "propertyName": "type" } }, "UserPermission": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "admin": { "title": "Admin", "description": "The user has admin permission to this resource", "default": false, "example": false, "type": "boolean" }, "write": { "title": "Write", "description": "The user has write permission on this resource", "default": false, "example": false, "type": "boolean" }, "read": { "title": "Read", "description": "The user has read permission on this resource", "default": false, "example": true, "type": "boolean" }, "type": { "title": "Type", "default": "UserPermission", "type": "string", "pattern": "^UserPermission$", "readOnly": true } } } ], "title": "UserPermission", "discriminator": { "propertyName": "type" } }, "AccessPolicyList": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "properties": { "page": { "title": "Page", "description": "The current page the pagination request is on", "type": "integer", "format": "int32" }, "per_page": { "title": "Per Page", "description": "The number of pages per pagination request", "type": "integer", "format": "int32" }, "page_count": { "title": "Page Count", "description": "The total number of pages", "type": "integer", "format": "int32" }, "total_count": { "title": "Total Count", "description": "The total number of resources matching the list request", "type": "integer", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/AccessPolicy" } }, "next_page": { "title": "Next Page", "description": "The next page, if this on is not the last", "type": "integer", "format": "int32" }, "type": { "title": "Type", "default": "AccessPolicyList", "type": "string", "pattern": "^AccessPolicyList$", "readOnly": true } } } ], "title": "AccessPolicyList", "description": "A list response from a pagination request", "discriminator": { "propertyName": "type" } }, "TaskBaseReference": { "allOf": [ { "$ref": "#/components/schemas/BaseReference" }, { "type": "object", "required": [ "name", "variable" ], "properties": { "name": { "title": "Name", "description": "The name of the task to pull output data from", "type": "string" }, "variable": { "title": "Variable", "description": "The name of the task output variable", "type": "string" }, "type": { "default": "tasks", "allOf": [ { "$ref": "#/components/schemas/TaskReference" } ], "readOnly": true } } } ], "title": "TaskBaseReference", "description": "A Task Reference", "discriminator": { "propertyName": "type" } }, "Update": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "public": { "title": "Public", "description": "Whether or not a repository is publicly viewable", "default": true, "type": "boolean" }, "keywords": { "title": "Keywords", "description": "A list of keywords to index the repository by", "example": [ "daylight", "radiance" ], "type": "array", "items": { "type": "string" } }, "description": { "title": "Description", "description": "A description of the repository", "example": "Run daylight simulations the easy way!", "type": "string" }, "icon": { "title": "Icon", "description": "An icon to represent this repository", "example": "https://avatars1.githubusercontent.com/u/38131342", "type": "string" }, "type": { "title": "Type", "default": "Update", "type": "string", "pattern": "^Update$", "readOnly": true } } } ], "title": "Update", "discriminator": { "propertyName": "type" } }, "BaseStatus": { "allOf": [ { "$ref": "#/components/schemas/_OpenAPIGenBaseModel" }, { "type": "object", "properties": { "status": { "title": "Status", "description": "The status of this task. Can be \"Running\", \"Succeeded\", \"Failed\" or \"Error\"", "type": "string" }, "started_at": { "title": "Started At", "description": "The time at which the task was started", "type": "string", "format": "date-time" }, "message": { "title": "Message", "description": "Any message produced by the task. Usually error/debugging hints.", "type": "string" }, "finished_at": { "title": "Finished At", "description": "The time at which the task was completed", "type": "string", "format": "date-time" }, "type": { "title": "Type", "default": "BaseStatus", "type": "string", "pattern": "^BaseStatus$", "readOnly": true } }, "required": [ "status", "started_at" ] } ], "title": "BaseStatus", "description": "Base Status model", "discriminator": { "propertyName": "type" } }, "_OpenAPIGenBaseModel": { "title": "_OpenAPIGenBaseModel", "type": "object", "properties": { "type": { "title": "Type", "description": "A base class to use when there is no baseclass available to fall on.", "default": "InvalidType", "type": "string", "readOnly": true } }, "discriminator": { "propertyName": "type" } } }, "securitySchemes": { "JWTAuth": { "type": "http", "scheme": "bearer" }, "APIKeyAuth": { "type": "apiKey", "in": "header", "name": "x-pollination-token" } } } }