{
  "openapi": "3.1.0",
  "info": {
    "title": "Fjordrun API",
    "description": "The Fjordrun API manages teams, projects, services, deployments, domains, volumes, variables and billing.\nIt is the API the dashboard and the CLI use.\n\nAuthenticate with a team API token (`fjr_…`) or a personal access token (`fjr_pat_…`) in the\n`Authorization: Bearer` header. Errors are JSON: `{\"detail\": \"…\"}`.\n",
    "version": "0.1.0"
  },
  "servers": [
    {
      "url": "https://api.fjordrun.com"
    }
  ],
  "paths": {
    "/api/v1/auth/me": {
      "get": {
        "tags": [
          "auth"
        ],
        "summary": "Get the current user",
        "operationId": "me_api_v1_auth_me_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "token": []
          }
        ]
      },
      "patch": {
        "tags": [
          "auth"
        ],
        "summary": "Update the current user",
        "operationId": "update_me_api_v1_auth_me_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MePatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "token": []
          }
        ]
      }
    },
    "/api/v1/auth/password": {
      "post": {
        "tags": [
          "auth"
        ],
        "summary": "Change password",
        "operationId": "change_password_api_v1_auth_password_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PasswordIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "token": []
          }
        ]
      }
    },
    "/api/v1/auth/tokens": {
      "get": {
        "tags": [
          "tokens"
        ],
        "summary": "List personal access tokens",
        "operationId": "list_personal_tokens_api_v1_auth_tokens_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "token": []
          }
        ]
      }
    },
    "/api/v1/auth/tokens/current": {
      "delete": {
        "tags": [
          "tokens"
        ],
        "summary": "Revoke the token in use",
        "description": "`fjordrun logout`: revoke the personal access token this request was made with.",
        "operationId": "revoke_current_token_api_v1_auth_tokens_current_delete",
        "responses": {
          "204": {
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "token": []
          }
        ]
      }
    },
    "/api/v1/auth/tokens/{token_id}": {
      "delete": {
        "tags": [
          "tokens"
        ],
        "summary": "Revoke a personal access token",
        "operationId": "revoke_personal_token_api_v1_auth_tokens__token_id__delete",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "token_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Token Id"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/referrals": {
      "get": {
        "tags": [
          "referrals"
        ],
        "summary": "Get your referrals",
        "operationId": "my_referrals_api_v1_referrals_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "token": []
          }
        ]
      }
    },
    "/api/v1/teams": {
      "get": {
        "tags": [
          "teams"
        ],
        "summary": "List teams",
        "operationId": "list_teams_api_v1_teams_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "token": []
          }
        ]
      },
      "post": {
        "tags": [
          "teams"
        ],
        "summary": "Create team",
        "operationId": "create_team_api_v1_teams_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TeamIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "token": []
          }
        ]
      }
    },
    "/api/v1/teams/{tid}": {
      "get": {
        "tags": [
          "teams"
        ],
        "summary": "Get team",
        "operationId": "get_team_api_v1_teams__tid__get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "teams"
        ],
        "summary": "Update team",
        "operationId": "update_team_api_v1_teams__tid__patch",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TeamIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "teams"
        ],
        "summary": "Delete team",
        "operationId": "delete_team_api_v1_teams__tid__delete",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/teams/{tid}/members": {
      "get": {
        "tags": [
          "teams"
        ],
        "summary": "List members",
        "operationId": "list_members_api_v1_teams__tid__members_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/teams/{tid}/members/{uid}": {
      "patch": {
        "tags": [
          "teams"
        ],
        "summary": "Update member",
        "operationId": "update_member_api_v1_teams__tid__members__uid__patch",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          },
          {
            "name": "uid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Uid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RoleIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "teams"
        ],
        "summary": "Remove member",
        "operationId": "remove_member_api_v1_teams__tid__members__uid__delete",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          },
          {
            "name": "uid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Uid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/teams/{tid}/invites": {
      "get": {
        "tags": [
          "teams"
        ],
        "summary": "List invites",
        "operationId": "list_invites_api_v1_teams__tid__invites_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "teams"
        ],
        "summary": "Create invite",
        "operationId": "create_invite_api_v1_teams__tid__invites_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InviteIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invites/{iid}": {
      "delete": {
        "tags": [
          "teams"
        ],
        "summary": "Revoke an invite",
        "operationId": "revoke_invite_api_v1_invites__iid__delete",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "iid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Iid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invites/{token}": {
      "get": {
        "tags": [
          "teams"
        ],
        "summary": "Get an invite",
        "operationId": "get_invite_api_v1_invites__token__get",
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Token"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/invites/{token}/accept": {
      "post": {
        "tags": [
          "teams"
        ],
        "summary": "Accept an invite",
        "operationId": "accept_invite_api_v1_invites__token__accept_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Token"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/teams/{tid}/activity": {
      "get": {
        "tags": [
          "teams"
        ],
        "summary": "Team activity",
        "operationId": "team_activity_api_v1_teams__tid__activity_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/teams/{tid}/tokens": {
      "get": {
        "tags": [
          "teams"
        ],
        "summary": "List team API tokens",
        "operationId": "list_tokens_api_v1_teams__tid__tokens_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "teams"
        ],
        "summary": "Create a team API token",
        "operationId": "create_token_api_v1_teams__tid__tokens_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TokenIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tokens/{token_id}": {
      "delete": {
        "tags": [
          "teams"
        ],
        "summary": "Delete a team API token",
        "operationId": "delete_token_api_v1_tokens__token_id__delete",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "token_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Token Id"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/teams/{tid}/secrets": {
      "get": {
        "tags": [
          "teams"
        ],
        "summary": "List secrets",
        "operationId": "list_secrets_api_v1_teams__tid__secrets_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "teams"
        ],
        "summary": "Create secret",
        "operationId": "create_secret_api_v1_teams__tid__secrets_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SecretIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/secrets/{sid}": {
      "put": {
        "tags": [
          "teams"
        ],
        "summary": "Update a team secret",
        "operationId": "update_secret_api_v1_secrets__sid__put",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SecretValueIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "teams"
        ],
        "summary": "Delete a team secret",
        "operationId": "delete_secret_api_v1_secrets__sid__delete",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/teams/{tid}/projects": {
      "get": {
        "tags": [
          "projects"
        ],
        "summary": "List projects",
        "operationId": "list_projects_api_v1_teams__tid__projects_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "projects"
        ],
        "summary": "Create project",
        "operationId": "create_project_api_v1_teams__tid__projects_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/projects/{pid}": {
      "get": {
        "tags": [
          "projects"
        ],
        "summary": "Get project",
        "operationId": "get_project_api_v1_projects__pid__get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "pid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Pid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "projects"
        ],
        "summary": "Update project",
        "description": "Services run in the project's region. The region can't change while the project has volumes (409).",
        "operationId": "update_project_api_v1_projects__pid__patch",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "pid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Pid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectPatch"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "projects"
        ],
        "summary": "Delete project",
        "operationId": "delete_project_api_v1_projects__pid__delete",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "pid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Pid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/projects/{pid}/environments": {
      "post": {
        "tags": [
          "projects"
        ],
        "summary": "Create environment",
        "operationId": "create_environment_api_v1_projects__pid__environments_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "pid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Pid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EnvironmentIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/environments/{eid}": {
      "delete": {
        "tags": [
          "projects"
        ],
        "summary": "Delete environment",
        "operationId": "delete_environment_api_v1_environments__eid__delete",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "eid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Eid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/projects/{pid}/activity": {
      "get": {
        "tags": [
          "projects"
        ],
        "summary": "Project activity",
        "operationId": "project_activity_api_v1_projects__pid__activity_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "pid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Pid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/teams/{tid}/vpcs": {
      "get": {
        "tags": [
          "vpcs"
        ],
        "summary": "List private networks",
        "operationId": "list_vpcs_api_v1_teams__tid__vpcs_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "vpcs"
        ],
        "summary": "Create a private network",
        "operationId": "create_vpc_api_v1_teams__tid__vpcs_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VpcIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/teams/{tid}/vpcs/{vid}": {
      "get": {
        "tags": [
          "vpcs"
        ],
        "summary": "Get a private network",
        "operationId": "get_vpc_api_v1_teams__tid__vpcs__vid__get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          },
          {
            "name": "vid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Vid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "vpcs"
        ],
        "summary": "Rename or describe a private network",
        "operationId": "update_vpc_api_v1_teams__tid__vpcs__vid__patch",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          },
          {
            "name": "vid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Vid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VpcPatch"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "vpcs"
        ],
        "summary": "Delete a private network",
        "operationId": "delete_vpc_api_v1_teams__tid__vpcs__vid__delete",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          },
          {
            "name": "vid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Vid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/teams/{tid}/vpcs/{vid}/members": {
      "get": {
        "tags": [
          "vpcs"
        ],
        "summary": "List private network members",
        "operationId": "list_vpc_members_api_v1_teams__tid__vpcs__vid__members_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          },
          {
            "name": "vid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Vid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "vpcs"
        ],
        "summary": "Add an environment to a private network",
        "operationId": "add_vpc_member_api_v1_teams__tid__vpcs__vid__members_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          },
          {
            "name": "vid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Vid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VpcMemberIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/teams/{tid}/vpcs/{vid}/members/{eid}": {
      "delete": {
        "tags": [
          "vpcs"
        ],
        "summary": "Remove an environment from a private network",
        "operationId": "remove_vpc_member_api_v1_teams__tid__vpcs__vid__members__eid__delete",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          },
          {
            "name": "vid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Vid"
            }
          },
          {
            "name": "eid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Eid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/environments/{eid}/services": {
      "get": {
        "tags": [
          "services"
        ],
        "summary": "List services in an environment",
        "operationId": "list_services_api_v1_environments__eid__services_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "eid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Eid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/projects/{pid}/services": {
      "post": {
        "tags": [
          "services"
        ],
        "summary": "Create a service",
        "operationId": "create_service_route_api_v1_projects__pid__services_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "pid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Pid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceCreateIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/services/{sid}": {
      "get": {
        "tags": [
          "services"
        ],
        "summary": "Get service",
        "operationId": "get_service_api_v1_services__sid__get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "services"
        ],
        "summary": "Update a service",
        "operationId": "patch_service_api_v1_services__sid__patch",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServicePatchIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "services"
        ],
        "summary": "Delete service",
        "operationId": "delete_service_api_v1_services__sid__delete",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/services/{sid}/config": {
      "patch": {
        "tags": [
          "services"
        ],
        "summary": "Update build and runtime settings",
        "operationId": "patch_config_api_v1_services__sid__config_patch",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConfigPatchIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/services/{sid}/variables": {
      "get": {
        "tags": [
          "services"
        ],
        "summary": "Get service variables",
        "operationId": "get_variables_api_v1_services__sid__variables_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "services"
        ],
        "summary": "Replace service variables",
        "operationId": "put_variables_api_v1_services__sid__variables_put",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VariablesIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "services"
        ],
        "summary": "Update service variables",
        "operationId": "patch_variables_api_v1_services__sid__variables_patch",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VariablesPatchIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/services/{sid}/access": {
      "get": {
        "tags": [
          "services"
        ],
        "summary": "Get connection details",
        "description": "Login/connection details for template services, with values filled in from the service's variables.",
        "operationId": "get_access_api_v1_services__sid__access_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/environments/{eid}/shared-variables": {
      "get": {
        "tags": [
          "services"
        ],
        "summary": "Get shared variables",
        "operationId": "get_shared_api_v1_environments__eid__shared_variables_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "eid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Eid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "services"
        ],
        "summary": "Replace shared variables",
        "operationId": "put_shared_api_v1_environments__eid__shared_variables_put",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "eid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Eid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VariablesIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "services"
        ],
        "summary": "Update shared variables",
        "operationId": "patch_shared_api_v1_environments__eid__shared_variables_patch",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "eid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Eid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VariablesPatchIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/services/{sid}/metrics": {
      "get": {
        "tags": [
          "services"
        ],
        "summary": "Service metrics",
        "operationId": "service_metrics_api_v1_services__sid__metrics_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          },
          {
            "name": "range",
            "in": "query",
            "required": false,
            "schema": {
              "enum": [
                "1h",
                "6h",
                "24h",
                "7d"
              ],
              "type": "string",
              "default": "1h",
              "title": "Range"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/services/{sid}/usage": {
      "get": {
        "tags": [
          "services"
        ],
        "summary": "Get service usage",
        "description": "Billing-period-to-date actual usage and cost of the service, against its allocation.",
        "operationId": "service_usage_api_v1_services__sid__usage_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/services/{sid}/metrics/live": {
      "get": {
        "tags": [
          "services"
        ],
        "summary": "Stream live metrics",
        "description": "Server-sent events with the service's current usage every few seconds (the \"Live\" metrics view).",
        "operationId": "service_metrics_live_api_v1_services__sid__metrics_live_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Token"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/services/{sid}/logs": {
      "get": {
        "tags": [
          "services"
        ],
        "summary": "Service logs",
        "operationId": "service_logs_api_v1_services__sid__logs_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Search"
            }
          },
          {
            "name": "level",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "info",
                    "warn",
                    "error"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Level"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 2000,
              "minimum": 1,
              "default": 200,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/services/{sid}/deploy": {
      "post": {
        "tags": [
          "services"
        ],
        "summary": "Deploy a service",
        "operationId": "deploy_service_api_v1_services__sid__deploy_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/services/{sid}/deployments": {
      "get": {
        "tags": [
          "services"
        ],
        "summary": "List deployments",
        "operationId": "list_deployments_api_v1_services__sid__deployments_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 30,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/services/{sid}/domains": {
      "post": {
        "tags": [
          "services"
        ],
        "summary": "Add a custom domain",
        "operationId": "add_domain_api_v1_services__sid__domains_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DomainIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/domains/{did}/verify": {
      "post": {
        "tags": [
          "services"
        ],
        "summary": "Verify a custom domain",
        "operationId": "verify_domain_api_v1_domains__did__verify_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "did",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Did"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/domains/{did}": {
      "delete": {
        "tags": [
          "services"
        ],
        "summary": "Remove a custom domain",
        "operationId": "delete_domain_api_v1_domains__did__delete",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "did",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Did"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/services/{sid}/tcp-proxy": {
      "post": {
        "tags": [
          "services"
        ],
        "summary": "Enable public TCP access",
        "description": "Expose a port of the service through the shared TCP proxy: clients connect to the returned host and port\n(a free port from 20000-29999). For databases and other non-HTTP services; Hobby plan or higher.",
        "operationId": "add_tcp_proxy_api_v1_services__sid__tcp_proxy_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TcpProxyIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/services/{sid}/tcp-proxy/{port}": {
      "delete": {
        "tags": [
          "services"
        ],
        "summary": "Disable public TCP access",
        "operationId": "delete_tcp_proxy_api_v1_services__sid__tcp_proxy__port__delete",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "port",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "title": "Port"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/services/{sid}/volume": {
      "post": {
        "tags": [
          "services"
        ],
        "summary": "Add a volume",
        "operationId": "add_volume_api_v1_services__sid__volume_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VolumeIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volumes/{vid}": {
      "patch": {
        "tags": [
          "services"
        ],
        "summary": "Resize a volume",
        "operationId": "resize_volume_api_v1_volumes__vid__patch",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "vid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Vid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VolumePatchIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "services"
        ],
        "summary": "Delete volume",
        "operationId": "delete_volume_api_v1_volumes__vid__delete",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "vid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Vid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/services/{sid}/replicas": {
      "get": {
        "tags": [
          "services"
        ],
        "summary": "List running replicas",
        "description": "Running replicas (pods) of the service: the targets for a shell.",
        "operationId": "list_replicas_api_v1_services__sid__replicas_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/services/{sid}/shell/ticket": {
      "post": {
        "tags": [
          "services"
        ],
        "summary": "Create a shell ticket",
        "description": "A one-time ticket for the shell WebSocket, valid for 30 seconds.",
        "operationId": "create_shell_ticket_api_v1_services__sid__shell_ticket_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/ShellTicketIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/services/{sid}/files": {
      "get": {
        "tags": [
          "services"
        ],
        "summary": "List files in a volume",
        "description": "Entries of a folder in the service's volume, folders first.",
        "operationId": "list_files_api_v1_services__sid__files_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "path",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "/",
              "title": "Path"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "services"
        ],
        "summary": "Delete a file or folder",
        "description": "Delete a file, or a folder with everything in it.",
        "operationId": "delete_file_api_v1_services__sid__files_delete",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "path",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Path"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/services/{sid}/files/download": {
      "get": {
        "tags": [
          "services"
        ],
        "summary": "Download a file",
        "operationId": "download_file_api_v1_services__sid__files_download_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "path",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Path"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The file's content",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/services/{sid}/files/upload": {
      "put": {
        "tags": [
          "services"
        ],
        "summary": "Upload a file",
        "description": "Upload the raw request body as a file (up to 100 MB). Replacing an existing file needs overwrite=true.",
        "operationId": "upload_file_api_v1_services__sid__files_upload_put",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "path",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Path"
            }
          },
          {
            "name": "overwrite",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "title": "Overwrite"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        }
      }
    },
    "/api/v1/services/{sid}/files/mkdir": {
      "post": {
        "tags": [
          "services"
        ],
        "summary": "Create a folder",
        "operationId": "create_folder_api_v1_services__sid__files_mkdir_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PathIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/services/{sid}/files/move": {
      "post": {
        "tags": [
          "services"
        ],
        "summary": "Rename or move a file",
        "description": "Rename or move a file or folder. The target must not exist.",
        "operationId": "move_file_api_v1_services__sid__files_move_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MoveIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/functions/limits": {
      "get": {
        "tags": [
          "functions"
        ],
        "summary": "Function runtimes and limits",
        "description": "Runtimes, memory sizes, defaults and limits for new functions, with the limits of each plan.",
        "operationId": "function_limits_api_v1_functions_limits_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "token": []
          }
        ]
      }
    },
    "/api/v1/projects/{pid}/functions": {
      "post": {
        "tags": [
          "functions"
        ],
        "summary": "Create a function",
        "operationId": "create_function_api_v1_projects__pid__functions_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "pid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Pid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FunctionCreateIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/functions/{sid}": {
      "get": {
        "tags": [
          "functions"
        ],
        "summary": "Get a function",
        "operationId": "get_function_api_v1_functions__sid__get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "functions"
        ],
        "summary": "Update a function's settings",
        "description": "Change the function's settings in one environment; a running function is redeployed with them (the same\nimage unless the runtime or entry file changed).",
        "operationId": "update_function_api_v1_functions__sid__patch",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FunctionPatchIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "functions"
        ],
        "summary": "Delete a function",
        "operationId": "delete_function_api_v1_functions__sid__delete",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/functions/{sid}/code": {
      "get": {
        "tags": [
          "functions"
        ],
        "summary": "Get a function's code",
        "description": "The function's latest saved inline code (shared by all environments).",
        "operationId": "get_code_api_v1_functions__sid__code_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "functions"
        ],
        "summary": "Save a function's code",
        "description": "Save the function's inline code (all files; files left out are deleted) and optionally deploy it.",
        "operationId": "put_code_api_v1_functions__sid__code_put",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CodeIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/functions/{sid}/deploy": {
      "post": {
        "tags": [
          "functions"
        ],
        "summary": "Deploy a function",
        "operationId": "deploy_function_api_v1_functions__sid__deploy_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/functions/{sid}/token": {
      "get": {
        "tags": [
          "functions"
        ],
        "summary": "Get a function's token",
        "description": "The token callers send in the X-Fjordrun-Token header when the function's auth is \"token\".",
        "operationId": "get_token_api_v1_functions__sid__token_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/functions/{sid}/token/rotate": {
      "post": {
        "tags": [
          "functions"
        ],
        "summary": "Rotate a function's token",
        "description": "Replace the token; the old one stops working once the function is redeployed (which this starts).",
        "operationId": "rotate_token_api_v1_functions__sid__token_rotate_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/functions/{sid}/invoke": {
      "post": {
        "tags": [
          "functions"
        ],
        "summary": "Invoke a function",
        "description": "Call the deployed function through its public URL (the test console). Billed like any other request.",
        "operationId": "invoke_function_api_v1_functions__sid__invoke_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvokeIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/functions/{sid}/stats": {
      "get": {
        "tags": [
          "functions"
        ],
        "summary": "Get function invocation stats",
        "description": "Invocations, errors, cold starts and p50/p95 duration over the range, with per-step series.",
        "operationId": "function_stats_api_v1_functions__sid__stats_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          },
          {
            "name": "range",
            "in": "query",
            "required": false,
            "schema": {
              "enum": [
                "1h",
                "6h",
                "24h",
                "7d"
              ],
              "type": "string",
              "default": "1h",
              "title": "Range"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/functions/{sid}/logs": {
      "get": {
        "tags": [
          "functions"
        ],
        "summary": "Get function logs",
        "description": "The function's output: what the handler prints, plus one line per invocation.",
        "operationId": "function_logs_api_v1_functions__sid__logs_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "sid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Sid"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Environment Id"
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Search"
            }
          },
          {
            "name": "level",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "info",
                    "warn",
                    "error"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Level"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 2000,
              "minimum": 1,
              "default": 200,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/deployments/{did}": {
      "get": {
        "tags": [
          "deployments"
        ],
        "summary": "Get deployment",
        "operationId": "get_deployment_api_v1_deployments__did__get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "did",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Did"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/deployments/{did}/redeploy": {
      "post": {
        "tags": [
          "deployments"
        ],
        "summary": "Redeploy",
        "operationId": "redeploy_api_v1_deployments__did__redeploy_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "did",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Did"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/deployments/{did}/rollback": {
      "post": {
        "tags": [
          "deployments"
        ],
        "summary": "Roll back to a deployment",
        "operationId": "rollback_api_v1_deployments__did__rollback_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "did",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Did"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/deployments/{did}/cancel": {
      "post": {
        "tags": [
          "deployments"
        ],
        "summary": "Cancel a deployment",
        "operationId": "cancel_api_v1_deployments__did__cancel_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "did",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Did"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/deployments/{did}/remove": {
      "post": {
        "tags": [
          "deployments"
        ],
        "summary": "Remove a deployment",
        "operationId": "remove_api_v1_deployments__did__remove_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "did",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Did"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/deployments/{did}/logs": {
      "get": {
        "tags": [
          "deployments"
        ],
        "summary": "Deployment logs",
        "operationId": "deployment_logs_api_v1_deployments__did__logs_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "did",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Did"
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "enum": [
                "build",
                "deploy"
              ],
              "type": "string",
              "default": "deploy",
              "title": "Type"
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Search"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 5000,
              "minimum": 1,
              "default": 500,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/deployments/{did}/logs/stream": {
      "get": {
        "tags": [
          "deployments"
        ],
        "summary": "Stream deployment logs",
        "operationId": "stream_logs_api_v1_deployments__did__logs_stream_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "did",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Did"
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "enum": [
                "build",
                "deploy"
              ],
              "type": "string",
              "default": "deploy",
              "title": "Type"
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Token"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/templates": {
      "get": {
        "tags": [
          "templates"
        ],
        "summary": "List templates",
        "description": "Public (no auth): the dashboard and the website's template gallery. The list only changes with a release, so\nbrowsers and CDNs may cache it for a few minutes.",
        "operationId": "list_templates_api_v1_templates_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/projects/{pid}/templates/{code}/deploy": {
      "post": {
        "tags": [
          "templates"
        ],
        "summary": "Deploy a template",
        "operationId": "deploy_template_api_v1_projects__pid__templates__code__deploy_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "pid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Pid"
            }
          },
          {
            "name": "code",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Code"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TemplateDeployIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/pricing": {
      "get": {
        "tags": [
          "billing"
        ],
        "summary": "Plans and prices",
        "operationId": "pricing_api_v1_pricing_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/teams/{tid}/usage": {
      "get": {
        "tags": [
          "billing"
        ],
        "summary": "Get team usage",
        "operationId": "team_usage_api_v1_teams__tid__usage_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/teams/{tid}/billing": {
      "get": {
        "tags": [
          "billing"
        ],
        "summary": "Get billing settings and credit",
        "operationId": "team_billing_api_v1_teams__tid__billing_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "billing"
        ],
        "summary": "Update spending limit and auto-recharge",
        "operationId": "patch_billing_api_v1_teams__tid__billing_patch",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BillingPatch"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/teams/{tid}/billing/credits": {
      "get": {
        "tags": [
          "billing"
        ],
        "summary": "List credit transactions",
        "operationId": "credit_ledger_api_v1_teams__tid__billing_credits_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/teams/{tid}/billing/topup": {
      "post": {
        "tags": [
          "billing"
        ],
        "summary": "Buy credit",
        "description": "Start a credit purchase: returns the Stripe Checkout URL. Credit is added by the webhook once paid.",
        "operationId": "topup_api_v1_teams__tid__billing_topup_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          },
          {
            "name": "save_card",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "title": "Save Card"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TopupIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/teams/{tid}/billing/checkout": {
      "post": {
        "tags": [
          "billing"
        ],
        "summary": "Start a plan checkout",
        "operationId": "checkout_api_v1_teams__tid__billing_checkout_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CheckoutIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/teams/{tid}/billing/portal": {
      "post": {
        "tags": [
          "billing"
        ],
        "summary": "Open the billing portal",
        "operationId": "portal_api_v1_teams__tid__billing_portal_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/teams/{tid}/invoices": {
      "get": {
        "tags": [
          "billing"
        ],
        "summary": "List invoices",
        "operationId": "invoices_api_v1_teams__tid__invoices_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/models": {
      "get": {
        "tags": [
          "agentic"
        ],
        "summary": "List AI models",
        "operationId": "models_api_v1_models_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/teams/{tid}/agents": {
      "get": {
        "tags": [
          "agentic"
        ],
        "summary": "List agents",
        "operationId": "list_agents_api_v1_teams__tid__agents_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "agentic"
        ],
        "summary": "Create agent",
        "operationId": "create_agent_api_v1_teams__tid__agents_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/agents/{aid}": {
      "get": {
        "tags": [
          "agentic"
        ],
        "summary": "Get agent",
        "operationId": "get_agent_api_v1_agents__aid__get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "aid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Aid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "agentic"
        ],
        "summary": "Update agent",
        "operationId": "update_agent_api_v1_agents__aid__patch",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "aid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Aid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentPatch"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "agentic"
        ],
        "summary": "Delete agent",
        "operationId": "delete_agent_api_v1_agents__aid__delete",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "aid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Aid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/agents/{aid}/chat": {
      "post": {
        "tags": [
          "agentic"
        ],
        "summary": "Chat with an agent",
        "operationId": "agent_chat_api_v1_agents__aid__chat_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "aid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Aid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChatIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/teams/{tid}/workflows": {
      "get": {
        "tags": [
          "agentic"
        ],
        "summary": "List workflows",
        "operationId": "list_workflows_api_v1_teams__tid__workflows_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "agentic"
        ],
        "summary": "Create workflow",
        "operationId": "create_workflow_api_v1_teams__tid__workflows_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "tid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Tid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkflowIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/workflows/{wid}": {
      "get": {
        "tags": [
          "agentic"
        ],
        "summary": "Get workflow",
        "operationId": "get_workflow_api_v1_workflows__wid__get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "wid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Wid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "agentic"
        ],
        "summary": "Update workflow",
        "operationId": "update_workflow_api_v1_workflows__wid__patch",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "wid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Wid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkflowPatch"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "agentic"
        ],
        "summary": "Delete workflow",
        "operationId": "delete_workflow_api_v1_workflows__wid__delete",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "wid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Wid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/workflows/{wid}/runs": {
      "post": {
        "tags": [
          "agentic"
        ],
        "summary": "Run a workflow",
        "operationId": "trigger_run_api_v1_workflows__wid__runs_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "wid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Wid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/RunIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "agentic"
        ],
        "summary": "List runs",
        "operationId": "list_runs_api_v1_workflows__wid__runs_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "wid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Wid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 30,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/runs/{rid}": {
      "get": {
        "tags": [
          "agentic"
        ],
        "summary": "Get run",
        "operationId": "get_run_api_v1_runs__rid__get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "rid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Rid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/runs/{rid}/cancel": {
      "post": {
        "tags": [
          "agentic"
        ],
        "summary": "Cancel run",
        "operationId": "cancel_run_api_v1_runs__rid__cancel_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "rid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Rid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/runs/{rid}/approve": {
      "post": {
        "tags": [
          "agentic"
        ],
        "summary": "Approve run",
        "operationId": "approve_run_api_v1_runs__rid__approve_post",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "rid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Rid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApproveIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/runs/{rid}/stream": {
      "get": {
        "tags": [
          "agentic"
        ],
        "summary": "Stream a run",
        "operationId": "stream_run_api_v1_runs__rid__stream_get",
        "security": [
          {
            "token": []
          }
        ],
        "parameters": [
          {
            "name": "rid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Rid"
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Token"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/hooks/workflows/{wid}/{secret}": {
      "post": {
        "tags": [
          "agentic"
        ],
        "summary": "Trigger a workflow by webhook",
        "operationId": "workflow_webhook_api_v1_hooks_workflows__wid___secret__post",
        "parameters": [
          {
            "name": "wid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Wid"
            }
          },
          {
            "name": "secret",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Secret"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/meta": {
      "get": {
        "tags": [
          "public"
        ],
        "summary": "Platform information",
        "operationId": "meta_api_v1_meta_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": []
      }
    }
  },
  "components": {
    "schemas": {
      "AgentIn": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "project_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Id"
          },
          "model": {
            "type": "string",
            "title": "Model",
            "default": "claude-opus-5-5"
          },
          "system_prompt": {
            "type": "string",
            "maxLength": 100000,
            "title": "System Prompt",
            "default": "You are a helpful agent."
          },
          "tools": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Tools"
          },
          "max_steps": {
            "type": "integer",
            "maximum": 100,
            "minimum": 1,
            "title": "Max Steps",
            "default": 10
          },
          "temperature": {
            "type": "number",
            "maximum": 1,
            "minimum": 0,
            "title": "Temperature",
            "default": 1
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "AgentIn"
      },
      "AgentPatch": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "project_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Id"
          },
          "model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model"
          },
          "system_prompt": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100000
              },
              {
                "type": "null"
              }
            ],
            "title": "System Prompt"
          },
          "tools": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tools"
          },
          "max_steps": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 100,
                "minimum": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Steps"
          },
          "temperature": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 1,
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "title": "Temperature"
          }
        },
        "type": "object",
        "title": "AgentPatch"
      },
      "ApproveIn": {
        "properties": {
          "node_id": {
            "type": "string",
            "title": "Node Id"
          },
          "approved": {
            "type": "boolean",
            "title": "Approved"
          },
          "comment": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Comment"
          }
        },
        "type": "object",
        "required": [
          "node_id",
          "approved"
        ],
        "title": "ApproveIn"
      },
      "BillingPatch": {
        "properties": {
          "usage_limit_eur": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 1000000,
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "title": "Usage Limit Eur"
          },
          "auto_recharge_enabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Auto Recharge Enabled"
          },
          "auto_recharge_threshold_eur": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 1000,
                "minimum": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Auto Recharge Threshold Eur"
          },
          "auto_recharge_amount_eur": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 500,
                "minimum": 10
              },
              {
                "type": "null"
              }
            ],
            "title": "Auto Recharge Amount Eur"
          },
          "auto_recharge_monthly_cap_eur": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 5000,
                "minimum": 10
              },
              {
                "type": "null"
              }
            ],
            "title": "Auto Recharge Monthly Cap Eur"
          }
        },
        "type": "object",
        "title": "BillingPatch",
        "description": "Only the fields sent are changed (usage_limit_eur: null removes the limit)."
      },
      "CanvasIn": {
        "properties": {
          "x": {
            "type": "number",
            "title": "X"
          },
          "y": {
            "type": "number",
            "title": "Y"
          }
        },
        "type": "object",
        "required": [
          "x",
          "y"
        ],
        "title": "CanvasIn"
      },
      "ChatIn": {
        "properties": {
          "messages": {
            "items": {
              "$ref": "#/components/schemas/ChatMessage"
            },
            "type": "array",
            "maxItems": 200,
            "minItems": 1,
            "title": "Messages"
          }
        },
        "type": "object",
        "required": [
          "messages"
        ],
        "title": "ChatIn"
      },
      "ChatMessage": {
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "user",
              "assistant"
            ],
            "title": "Role"
          },
          "content": {
            "type": "string",
            "maxLength": 200000,
            "title": "Content"
          }
        },
        "type": "object",
        "required": [
          "role",
          "content"
        ],
        "title": "ChatMessage"
      },
      "CheckoutIn": {
        "properties": {
          "plan": {
            "type": "string",
            "enum": [
              "hobby",
              "pro"
            ],
            "title": "Plan"
          }
        },
        "type": "object",
        "required": [
          "plan"
        ],
        "title": "CheckoutIn"
      },
      "CodeIn": {
        "properties": {
          "files": {
            "items": {
              "$ref": "#/components/schemas/FileIn"
            },
            "type": "array",
            "maxItems": 100,
            "title": "Files"
          },
          "deploy": {
            "type": "boolean",
            "title": "Deploy",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "files"
        ],
        "title": "CodeIn"
      },
      "ConfigPatchIn": {
        "properties": {
          "source": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ServiceSource"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source",
            "description": "Partial objects are allowed: fields you leave out keep their current value (or the default)."
          },
          "config": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ServiceConfig"
              },
              {
                "type": "null"
              }
            ],
            "title": "Config",
            "description": "Partial objects are allowed: fields you leave out keep their current value (or the default)."
          }
        },
        "type": "object",
        "title": "ConfigPatchIn"
      },
      "DomainIn": {
        "properties": {
          "hostname": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 253
              },
              {
                "type": "null"
              }
            ],
            "title": "Hostname"
          },
          "target_port": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 65535,
                "minimum": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Port"
          }
        },
        "type": "object",
        "title": "DomainIn"
      },
      "EnvironmentIn": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 60,
            "minLength": 1,
            "title": "Name"
          },
          "fork_from_environment_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fork From Environment Id"
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "EnvironmentIn"
      },
      "FileIn": {
        "properties": {
          "path": {
            "type": "string",
            "maxLength": 200,
            "minLength": 1,
            "title": "Path"
          },
          "content": {
            "type": "string",
            "title": "Content"
          }
        },
        "type": "object",
        "required": [
          "path",
          "content"
        ],
        "title": "FileIn"
      },
      "FunctionCreateIn": {
        "properties": {
          "runtime": {
            "type": "string",
            "enum": [
              "node22",
              "python312"
            ],
            "title": "Runtime",
            "default": "node22"
          },
          "entry": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ],
            "title": "Entry"
          },
          "memory_mb": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Memory Mb"
          },
          "timeout_s": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timeout S"
          },
          "concurrency": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Concurrency"
          },
          "max_replicas": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Replicas"
          },
          "idle_timeout_s": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Idle Timeout S"
          },
          "auth": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "public",
                  "token"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Auth"
          },
          "environment_id": {
            "type": "string",
            "format": "uuid",
            "title": "Environment Id"
          },
          "name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "files": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/FileIn"
                },
                "type": "array",
                "maxItems": 100
              },
              {
                "type": "null"
              }
            ],
            "title": "Files"
          },
          "source": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/GitHubSourceIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "deploy": {
            "type": "boolean",
            "title": "Deploy",
            "default": true
          }
        },
        "type": "object",
        "required": [
          "environment_id"
        ],
        "title": "FunctionCreateIn"
      },
      "FunctionPatchIn": {
        "properties": {
          "runtime": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "node22",
                  "python312"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Runtime"
          },
          "entry": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ],
            "title": "Entry"
          },
          "memory_mb": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Memory Mb"
          },
          "timeout_s": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timeout S"
          },
          "concurrency": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Concurrency"
          },
          "max_replicas": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Replicas"
          },
          "idle_timeout_s": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Idle Timeout S"
          },
          "auth": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "public",
                  "token"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Auth"
          },
          "name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          }
        },
        "type": "object",
        "title": "FunctionPatchIn"
      },
      "GitHubSourceIn": {
        "properties": {
          "type": {
            "type": "string",
            "const": "github",
            "title": "Type",
            "default": "github"
          },
          "repo": {
            "type": "string",
            "maxLength": 200,
            "title": "Repo"
          },
          "branch": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ],
            "title": "Branch"
          },
          "root_dir": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ],
            "title": "Root Dir"
          }
        },
        "type": "object",
        "required": [
          "repo"
        ],
        "title": "GitHubSourceIn"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "InviteIn": {
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "title": "Email"
          },
          "role": {
            "type": "string",
            "enum": [
              "owner",
              "admin",
              "member",
              "viewer"
            ],
            "title": "Role",
            "default": "member"
          }
        },
        "type": "object",
        "required": [
          "email"
        ],
        "title": "InviteIn"
      },
      "InvokeIn": {
        "properties": {
          "method": {
            "type": "string",
            "enum": [
              "GET",
              "POST",
              "PUT",
              "PATCH",
              "DELETE",
              "HEAD",
              "OPTIONS"
            ],
            "title": "Method",
            "default": "GET"
          },
          "path": {
            "type": "string",
            "maxLength": 2000,
            "pattern": "^/",
            "title": "Path",
            "default": "/"
          },
          "headers": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Headers"
          },
          "body": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 1048576
              },
              {
                "type": "null"
              }
            ],
            "title": "Body"
          }
        },
        "type": "object",
        "title": "InvokeIn"
      },
      "MePatch": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "avatar_url": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ],
            "title": "Avatar Url"
          },
          "product_emails": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Product Emails"
          }
        },
        "type": "object",
        "title": "MePatch"
      },
      "MoveIn": {
        "properties": {
          "from": {
            "type": "string",
            "maxLength": 4096,
            "minLength": 1,
            "title": "From"
          },
          "to": {
            "type": "string",
            "maxLength": 4096,
            "minLength": 1,
            "title": "To"
          }
        },
        "type": "object",
        "required": [
          "from",
          "to"
        ],
        "title": "MoveIn"
      },
      "PasswordIn": {
        "properties": {
          "current_password": {
            "type": "string",
            "title": "Current Password"
          },
          "new_password": {
            "type": "string",
            "maxLength": 200,
            "minLength": 8,
            "title": "New Password"
          }
        },
        "type": "object",
        "required": [
          "current_password",
          "new_password"
        ],
        "title": "PasswordIn"
      },
      "PathIn": {
        "properties": {
          "path": {
            "type": "string",
            "maxLength": 4096,
            "minLength": 1,
            "title": "Path"
          }
        },
        "type": "object",
        "required": [
          "path"
        ],
        "title": "PathIn"
      },
      "ProjectIn": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "region": {
            "type": "string",
            "enum": [
              "fsn1",
              "nbg1",
              "hel1"
            ],
            "title": "Region",
            "default": "nbg1"
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "ProjectIn"
      },
      "ProjectPatch": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "icon": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 50
              },
              {
                "type": "null"
              }
            ],
            "title": "Icon"
          },
          "region": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "fsn1",
                  "nbg1",
                  "hel1"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Region"
          }
        },
        "type": "object",
        "title": "ProjectPatch"
      },
      "RoleIn": {
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "owner",
              "admin",
              "member",
              "viewer"
            ],
            "title": "Role"
          }
        },
        "type": "object",
        "required": [
          "role"
        ],
        "title": "RoleIn"
      },
      "RunIn": {
        "properties": {
          "input": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Input"
          }
        },
        "type": "object",
        "title": "RunIn"
      },
      "SecretIn": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "title": "Name"
          },
          "value": {
            "type": "string",
            "maxLength": 65536,
            "title": "Value"
          }
        },
        "type": "object",
        "required": [
          "name",
          "value"
        ],
        "title": "SecretIn"
      },
      "SecretValueIn": {
        "properties": {
          "value": {
            "type": "string",
            "maxLength": 65536,
            "title": "Value"
          }
        },
        "type": "object",
        "required": [
          "value"
        ],
        "title": "SecretValueIn"
      },
      "ServiceCreateIn": {
        "properties": {
          "environment_id": {
            "type": "string",
            "format": "uuid",
            "title": "Environment Id"
          },
          "name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "kind": {
            "type": "string",
            "enum": [
              "web",
              "worker",
              "cron",
              "database",
              "agent",
              "function"
            ],
            "title": "Kind",
            "default": "web"
          },
          "source": {
            "$ref": "#/components/schemas/ServiceSource",
            "title": "Source",
            "description": "Partial objects are allowed: fields you leave out keep their current value (or the default)."
          },
          "config": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ServiceConfig"
              },
              {
                "type": "null"
              }
            ],
            "title": "Config",
            "description": "Partial objects are allowed: fields you leave out keep their current value (or the default)."
          },
          "variables": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Variables"
          },
          "canvas": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CanvasIn"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "environment_id"
        ],
        "title": "ServiceCreateIn"
      },
      "ServicePatchIn": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "icon": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100
              },
              {
                "type": "null"
              }
            ],
            "title": "Icon"
          },
          "canvas": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CanvasIn"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "title": "ServicePatchIn"
      },
      "ShellTicketIn": {
        "properties": {
          "replica": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 253
              },
              {
                "type": "null"
              }
            ],
            "title": "Replica",
            "description": "Pod to connect to (from GET /services/{sid}/replicas); default: the oldest ready one"
          },
          "command": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 8192
              },
              {
                "type": "null"
              }
            ],
            "title": "Command",
            "description": "Run this with /bin/sh -c instead of an interactive shell"
          },
          "tty": {
            "type": "boolean",
            "title": "Tty",
            "description": "Allocate a terminal (false for piped input and output)",
            "default": true
          }
        },
        "type": "object",
        "title": "ShellTicketIn"
      },
      "TcpProxyIn": {
        "properties": {
          "target_port": {
            "type": "integer",
            "maximum": 65535,
            "minimum": 1,
            "title": "Target Port"
          }
        },
        "type": "object",
        "required": [
          "target_port"
        ],
        "title": "TcpProxyIn"
      },
      "TeamIn": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "title": "Name"
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "TeamIn"
      },
      "TemplateDeployIn": {
        "properties": {
          "environment_id": {
            "type": "string",
            "format": "uuid",
            "title": "Environment Id"
          }
        },
        "type": "object",
        "required": [
          "environment_id"
        ],
        "title": "TemplateDeployIn"
      },
      "TokenIn": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "title": "Name"
          },
          "project_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Id"
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "TokenIn"
      },
      "TopupIn": {
        "properties": {
          "amount_eur": {
            "type": "integer",
            "maximum": 1000,
            "minimum": 5,
            "title": "Amount Eur"
          },
          "save_card": {
            "type": "boolean",
            "title": "Save Card",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "amount_eur"
        ],
        "title": "TopupIn"
      },
      "TriggerIn": {
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "manual",
              "cron",
              "webhook",
              "api"
            ],
            "title": "Type"
          },
          "cron": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cron"
          }
        },
        "type": "object",
        "required": [
          "type"
        ],
        "title": "TriggerIn"
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          },
          "input": {
            "title": "Input"
          },
          "ctx": {
            "type": "object",
            "title": "Context"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "VariablesIn": {
        "properties": {
          "variables": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Variables"
          }
        },
        "type": "object",
        "required": [
          "variables"
        ],
        "title": "VariablesIn"
      },
      "VariablesPatchIn": {
        "properties": {
          "variables": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "type": "object",
            "title": "Variables"
          }
        },
        "type": "object",
        "required": [
          "variables"
        ],
        "title": "VariablesPatchIn"
      },
      "VolumeIn": {
        "properties": {
          "mount_path": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1,
            "pattern": "^/.*",
            "title": "Mount Path"
          },
          "size_gb": {
            "type": "integer",
            "maximum": 10000,
            "minimum": 1,
            "title": "Size Gb",
            "default": 5
          }
        },
        "type": "object",
        "required": [
          "mount_path"
        ],
        "title": "VolumeIn"
      },
      "VolumePatchIn": {
        "properties": {
          "size_gb": {
            "type": "integer",
            "maximum": 10000,
            "minimum": 1,
            "title": "Size Gb"
          }
        },
        "type": "object",
        "required": [
          "size_gb"
        ],
        "title": "VolumePatchIn"
      },
      "VpcIn": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 60,
            "minLength": 1,
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "VpcIn"
      },
      "VpcMemberIn": {
        "properties": {
          "environment_id": {
            "type": "string",
            "format": "uuid",
            "title": "Environment Id"
          }
        },
        "type": "object",
        "required": [
          "environment_id"
        ],
        "title": "VpcMemberIn"
      },
      "VpcPatch": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 60,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          }
        },
        "type": "object",
        "title": "VpcPatch"
      },
      "WorkflowIn": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 150,
            "minLength": 1,
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "project_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Id"
          },
          "definition": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Definition"
          },
          "triggers": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/TriggerIn"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Triggers"
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "WorkflowIn"
      },
      "WorkflowPatch": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 150,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "project_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Id"
          },
          "definition": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Definition"
          },
          "triggers": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/TriggerIn"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Triggers"
          },
          "is_active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Active"
          }
        },
        "type": "object",
        "title": "WorkflowPatch"
      },
      "ServiceSource": {
        "additionalProperties": false,
        "properties": {
          "type": {
            "default": "empty",
            "enum": [
              "github",
              "image",
              "template",
              "inline",
              "empty"
            ],
            "title": "Type",
            "type": "string"
          },
          "repo": {
            "anyOf": [
              {
                "maxLength": 200,
                "pattern": "^[\\w.-]+/[\\w.-]+$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Repo"
          },
          "branch": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Branch"
          },
          "root_dir": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Root Dir"
          },
          "image": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Image"
          },
          "template": {
            "anyOf": [
              {
                "maxLength": 50,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Template"
          }
        },
        "title": "ServiceSource",
        "type": "object"
      },
      "BuildConfig": {
        "additionalProperties": false,
        "properties": {
          "builder": {
            "default": "auto",
            "enum": [
              "auto",
              "nixpacks",
              "dockerfile"
            ],
            "title": "Builder",
            "type": "string"
          },
          "dockerfile_path": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Dockerfile Path"
          },
          "build_command": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Build Command"
          },
          "watch_paths": {
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "title": "Watch Paths",
            "type": "array"
          }
        },
        "title": "BuildConfig",
        "type": "object"
      },
      "DeployConfig": {
        "additionalProperties": false,
        "properties": {
          "start_command": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Start Command"
          },
          "port": {
            "anyOf": [
              {
                "maximum": 65535,
                "minimum": 1,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Port"
          },
          "healthcheck_path": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Healthcheck Path"
          },
          "healthcheck_timeout": {
            "default": 300,
            "maximum": 3600,
            "minimum": 10,
            "title": "Healthcheck Timeout",
            "type": "integer"
          },
          "restart_policy": {
            "default": "on_failure",
            "enum": [
              "on_failure",
              "always",
              "never"
            ],
            "title": "Restart Policy",
            "type": "string"
          },
          "max_restarts": {
            "default": 10,
            "maximum": 100,
            "minimum": 0,
            "title": "Max Restarts",
            "type": "integer"
          },
          "replicas": {
            "default": 1,
            "maximum": 50,
            "minimum": 0,
            "title": "Replicas",
            "type": "integer"
          },
          "cron_schedule": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Cron Schedule"
          },
          "sleep_when_idle": {
            "default": false,
            "title": "Sleep When Idle",
            "type": "boolean"
          },
          "sleep_after_minutes": {
            "default": 10,
            "maximum": 1440,
            "minimum": 1,
            "title": "Sleep After Minutes",
            "type": "integer"
          }
        },
        "title": "DeployConfig",
        "type": "object"
      },
      "FunctionConfig": {
        "additionalProperties": false,
        "properties": {
          "runtime": {
            "default": "node22",
            "enum": [
              "node22",
              "python312"
            ],
            "title": "Runtime",
            "type": "string"
          },
          "entry": {
            "default": "index.mjs",
            "maxLength": 200,
            "title": "Entry",
            "type": "string"
          },
          "memory_mb": {
            "default": 256,
            "title": "Memory Mb",
            "type": "integer"
          },
          "timeout_s": {
            "default": 30,
            "maximum": 900,
            "minimum": 1,
            "title": "Timeout S",
            "type": "integer"
          },
          "concurrency": {
            "default": 10,
            "maximum": 100,
            "minimum": 1,
            "title": "Concurrency",
            "type": "integer"
          },
          "max_replicas": {
            "default": 1,
            "maximum": 50,
            "minimum": 1,
            "title": "Max Replicas",
            "type": "integer"
          },
          "idle_timeout_s": {
            "default": 120,
            "maximum": 900,
            "minimum": 30,
            "title": "Idle Timeout S",
            "type": "integer"
          },
          "auth": {
            "default": "public",
            "enum": [
              "public",
              "token"
            ],
            "title": "Auth",
            "type": "string"
          }
        },
        "title": "FunctionConfig",
        "type": "object"
      },
      "Resources": {
        "additionalProperties": false,
        "properties": {
          "cpu_millicores": {
            "default": 500,
            "maximum": 64000,
            "minimum": 100,
            "title": "Cpu Millicores",
            "type": "integer"
          },
          "memory_mb": {
            "default": 512,
            "maximum": 131072,
            "minimum": 128,
            "title": "Memory Mb",
            "type": "integer"
          }
        },
        "title": "Resources",
        "type": "object"
      },
      "ServiceConfig": {
        "additionalProperties": false,
        "properties": {
          "build": {
            "$ref": "#/components/schemas/BuildConfig"
          },
          "deploy": {
            "$ref": "#/components/schemas/DeployConfig"
          },
          "resources": {
            "$ref": "#/components/schemas/Resources"
          },
          "billing_granularity": {
            "default": "minute",
            "enum": [
              "second",
              "minute",
              "hour"
            ],
            "title": "Billing Granularity",
            "type": "string"
          },
          "function": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FunctionConfig"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          }
        },
        "title": "ServiceConfig",
        "type": "object"
      }
    },
    "securitySchemes": {
      "token": {
        "type": "http",
        "description": "A team API token (`fjr_…`) or a personal access token (`fjr_pat_…`).",
        "scheme": "bearer"
      }
    }
  },
  "tags": [
    {
      "name": "auth",
      "description": "The signed-in user's profile and password."
    },
    {
      "name": "tokens",
      "description": "Personal access tokens (`fjr_pat_…`), created by `fjordrun login`."
    },
    {
      "name": "teams",
      "description": "Teams, members, invites, team API tokens and team secrets."
    },
    {
      "name": "projects",
      "description": "Projects, their environments and activity."
    },
    {
      "name": "vpcs",
      "description": "Private networks (VPCs): environments of several projects whose services reach each other privately."
    },
    {
      "name": "services",
      "description": "Services: configuration, variables, domains, public TCP, volumes, volume files, logs, metrics and shell tickets."
    },
    {
      "name": "functions",
      "description": "Serverless functions: code, settings, deploys, test invocations, stats and logs. A function is also a service, so the service endpoints work on it."
    },
    {
      "name": "deployments",
      "description": "Deployments: status, build and runtime logs, redeploy, rollback."
    },
    {
      "name": "templates",
      "description": "One-click templates and deploying them into a project."
    },
    {
      "name": "billing",
      "description": "Plans, prices, usage, credits, spending limits and invoices."
    },
    {
      "name": "referrals",
      "description": "Your referral link and the credit it earned."
    },
    {
      "name": "agentic",
      "description": "AI agents, workflows and their runs."
    },
    {
      "name": "public",
      "description": "Platform information that needs no token."
    }
  ]
}
