Update api spec (#260)

* YOYO NEW API SPEC!

* I have generated the latest API!

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This commit is contained in:
zoo-github-actions-auth[bot]
2024-08-23 13:21:00 -07:00
committed by GitHub
parent bbf311ab95
commit e6d46fd6dc
7 changed files with 797 additions and 695 deletions

File diff suppressed because it is too large Load Diff

View File

@ -22,6 +22,7 @@ def _get_kwargs(
*, *,
client: Client, client: Client,
pool: Optional[str] = None, pool: Optional[str] = None,
replay: Optional[str] = None,
) -> Dict[str, Any]: ) -> Dict[str, Any]:
url = "{}/ws/modeling/commands".format(client.base_url) # noqa: E501 url = "{}/ws/modeling/commands".format(client.base_url) # noqa: E501
@ -46,6 +47,13 @@ def _get_kwargs(
else: else:
url = url + "?post_effect=" + str(post_effect) url = url + "?post_effect=" + str(post_effect)
if replay is not None:
if "?" in url:
url = url + "&replay=" + str(replay)
else:
url = url + "?replay=" + str(replay)
if show_grid is not None: if show_grid is not None:
if "?" in url: if "?" in url:
@ -103,6 +111,7 @@ def sync(
*, *,
client: Client, client: Client,
pool: Optional[str] = None, pool: Optional[str] = None,
replay: Optional[str] = None,
) -> ClientConnection: ) -> ClientConnection:
"""Pass those commands to the engine via websocket, and pass responses back to the client. Basically, this is a websocket proxy between the frontend/client and the engine.""" # noqa: E501 """Pass those commands to the engine via websocket, and pass responses back to the client. Basically, this is a websocket proxy between the frontend/client and the engine.""" # noqa: E501
@ -110,6 +119,7 @@ def sync(
fps=fps, fps=fps,
pool=pool, pool=pool,
post_effect=post_effect, post_effect=post_effect,
replay=replay,
show_grid=show_grid, show_grid=show_grid,
unlocked_framerate=unlocked_framerate, unlocked_framerate=unlocked_framerate,
video_res_height=video_res_height, video_res_height=video_res_height,
@ -132,6 +142,7 @@ async def asyncio(
*, *,
client: Client, client: Client,
pool: Optional[str] = None, pool: Optional[str] = None,
replay: Optional[str] = None,
) -> WebSocketClientProtocol: ) -> WebSocketClientProtocol:
"""Pass those commands to the engine via websocket, and pass responses back to the client. Basically, this is a websocket proxy between the frontend/client and the engine.""" # noqa: E501 """Pass those commands to the engine via websocket, and pass responses back to the client. Basically, this is a websocket proxy between the frontend/client and the engine.""" # noqa: E501
@ -139,6 +150,7 @@ async def asyncio(
fps=fps, fps=fps,
pool=pool, pool=pool,
post_effect=post_effect, post_effect=post_effect,
replay=replay,
show_grid=show_grid, show_grid=show_grid,
unlocked_framerate=unlocked_framerate, unlocked_framerate=unlocked_framerate,
video_res_height=video_res_height, video_res_height=video_res_height,
@ -171,6 +183,7 @@ class WebSocket:
webrtc: bool, webrtc: bool,
client: Client, client: Client,
pool: Optional[str] = None, pool: Optional[str] = None,
replay: Optional[str] = None,
): ):
self.ws = sync( self.ws = sync(
fps, fps,
@ -182,6 +195,7 @@ class WebSocket:
webrtc, webrtc,
client=client, client=client,
pool=pool, pool=pool,
replay=replay,
) )
def __enter__( def __enter__(

View File

@ -6948,6 +6948,7 @@ def test_modeling_commands_ws():
video_res_width=10, video_res_width=10,
webrtc=False, webrtc=False,
pool=None, # Optional[str] pool=None, # Optional[str]
replay=None, # Optional[str]
) as websocket: ) as websocket:
# Send a message. # Send a message.
@ -6985,6 +6986,7 @@ async def test_modeling_commands_ws_async():
video_res_width=10, video_res_width=10,
webrtc=False, webrtc=False,
pool=None, # Optional[str] pool=None, # Optional[str]
replay=None, # Optional[str]
) )
# Send a message. # Send a message.

View File

@ -154,6 +154,7 @@ from .modeling_app_subscription_tier_name import ModelingAppSubscriptionTierName
from .modeling_cmd import ModelingCmd from .modeling_cmd import ModelingCmd
from .modeling_cmd_id import ModelingCmdId from .modeling_cmd_id import ModelingCmdId
from .modeling_cmd_req import ModelingCmdReq from .modeling_cmd_req import ModelingCmdReq
from .modeling_session_data import ModelingSessionData
from .mouse_click import MouseClick from .mouse_click import MouseClick
from .o_auth2_client_info import OAuth2ClientInfo from .o_auth2_client_info import OAuth2ClientInfo
from .o_auth2_grant_type import OAuth2GrantType from .o_auth2_grant_type import OAuth2GrantType

View File

@ -0,0 +1,11 @@
from pydantic import BaseModel, ConfigDict
class ModelingSessionData(BaseModel):
"""Successful Websocket response."""
api_call_id: str
model_config = ConfigDict(protected_namespaces=())

View File

@ -5,6 +5,7 @@ from typing_extensions import Annotated
from ..models.batch_response import BatchResponse from ..models.batch_response import BatchResponse
from ..models.ice_server import IceServer from ..models.ice_server import IceServer
from ..models.modeling_session_data import ModelingSessionData
from ..models.ok_modeling_cmd_response import OkModelingCmdResponse from ..models.ok_modeling_cmd_response import OkModelingCmdResponse
from ..models.raw_file import RawFile from ..models.raw_file import RawFile
from ..models.rtc_ice_candidate_init import RtcIceCandidateInit from ..models.rtc_ice_candidate_init import RtcIceCandidateInit
@ -135,6 +136,24 @@ class metrics_request(BaseModel):
model_config = ConfigDict(protected_namespaces=()) model_config = ConfigDict(protected_namespaces=())
class ModelingSessionDataData(BaseModel):
""""""
session: ModelingSessionData
model_config = ConfigDict(protected_namespaces=())
class modeling_session_data(BaseModel):
"""Data about the Modeling Session (application-level)."""
data: ModelingSessionDataData
type: Literal["modeling_session_data"] = "modeling_session_data"
model_config = ConfigDict(protected_namespaces=())
class PongData(BaseModel): class PongData(BaseModel):
"""""" """"""
@ -161,6 +180,7 @@ OkWebSocketResponseData = RootModel[
modeling_batch, modeling_batch,
export, export,
metrics_request, metrics_request,
modeling_session_data,
pong, pong,
], ],
Field(discriminator="type"), Field(discriminator="type"),

View File

@ -13838,6 +13838,15 @@
"$ref": "#/components/schemas/PostEffectType" "$ref": "#/components/schemas/PostEffectType"
} }
}, },
{
"in": "query",
"name": "replay",
"description": "If given, when the session ends, the modeling commands sent during the session will be written out to this filename. For debugging.",
"schema": {
"nullable": true,
"type": "string"
}
},
{ {
"in": "query", "in": "query",
"name": "show_grid", "name": "show_grid",
@ -23493,6 +23502,19 @@
"cmd_id" "cmd_id"
] ]
}, },
"ModelingSessionData": {
"description": "Successful Websocket response.",
"type": "object",
"properties": {
"api_call_id": {
"description": "ID of the API call this modeling session is using. Useful for tracing and debugging.",
"type": "string"
}
},
"required": [
"api_call_id"
]
},
"MouseClick": { "MouseClick": {
"description": "The response from the `MouseClick` command.", "description": "The response from the `MouseClick` command.",
"type": "object", "type": "object",
@ -24807,6 +24829,38 @@
"type" "type"
] ]
}, },
{
"description": "Data about the Modeling Session (application-level).",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"session": {
"description": "Data about the Modeling Session (application-level).",
"allOf": [
{
"$ref": "#/components/schemas/ModelingSessionData"
}
]
}
},
"required": [
"session"
]
},
"type": {
"type": "string",
"enum": [
"modeling_session_data"
]
}
},
"required": [
"data",
"type"
]
},
{ {
"description": "Pong response to a Ping message.", "description": "Pong response to a Ping message.",
"type": "object", "type": "object",