Update api spec (#411)

* 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]
2025-04-03 09:15:39 -07:00
committed by GitHub
parent d32c643b1e
commit a7f6433735
7 changed files with 980 additions and 857 deletions

File diff suppressed because it is too large Load Diff

View File

@ -17,6 +17,7 @@ from .api_call_query_group_by import ApiCallQueryGroupBy
from .api_call_status import ApiCallStatus
from .api_call_with_price import ApiCallWithPrice
from .api_call_with_price_results_page import ApiCallWithPriceResultsPage
from .api_endpoint import ApiEndpoint
from .api_error import ApiError
from .api_token import ApiToken
from .api_token_results_page import ApiTokenResultsPage

View File

@ -0,0 +1,15 @@
from enum import Enum
class ApiEndpoint(str, Enum):
"""Types of API endpoints.""" # noqa: E501
"""# The modeling API. """ # noqa: E501
MODELING = "modeling"
"""# Machine learning API. """ # noqa: E501
ML = "ml"
"""# File API. """ # noqa: E501
FILE = "file"
def __str__(self) -> str:
return str(self.value)

View File

@ -1,23 +1,39 @@
from typing import Optional
from pydantic import BaseModel, ConfigDict
class ClientMetrics(BaseModel):
"""ClientMetrics contains information regarding the state of the peer."""
rtc_frames_decoded: int
rtc_frame_height: Optional[int] = None
rtc_frames_dropped: int
rtc_frame_width: Optional[int] = None
rtc_frames_per_second: int
rtc_frames_decoded: Optional[int] = None
rtc_frames_received: int
rtc_frames_dropped: Optional[int] = None
rtc_freeze_count: int
rtc_frames_per_second: Optional[int] = None
rtc_jitter_sec: float
rtc_frames_received: Optional[int] = None
rtc_keyframes_decoded: int
rtc_freeze_count: Optional[int] = None
rtc_total_freezes_duration_sec: float
rtc_jitter_sec: Optional[float] = None
rtc_keyframes_decoded: Optional[int] = None
rtc_packets_lost: Optional[int] = None
rtc_pause_count: Optional[int] = None
rtc_pli_count: Optional[int] = None
rtc_stun_rtt_sec: Optional[float] = None
rtc_total_freezes_duration_sec: Optional[float] = None
rtc_total_pauses_duration_sec: Optional[float] = None
model_config = ConfigDict(protected_namespaces=())

View File

@ -2,6 +2,7 @@ from typing import List, Optional
from pydantic import BaseModel, ConfigDict
from ..models.api_endpoint import ApiEndpoint
from ..models.modeling_app_share_links import ModelingAppShareLinks
from ..models.modeling_app_subscription_tier_name import ModelingAppSubscriptionTierName
from ..models.subscription_tier_feature import SubscriptionTierFeature
@ -21,6 +22,8 @@ class ModelingAppSubscriptionTier(BaseModel):
description: str
endpoints_included: Optional[List[ApiEndpoint]] = None
features: Optional[List[SubscriptionTierFeature]] = None
name: ModelingAppSubscriptionTierName

View File

@ -2,6 +2,7 @@ from typing import List, Optional
from pydantic import BaseModel, ConfigDict
from ..models.api_endpoint import ApiEndpoint
from ..models.modeling_app_share_links import ModelingAppShareLinks
from ..models.modeling_app_subscription_tier_name import ModelingAppSubscriptionTierName
from ..models.subscription_tier_feature import SubscriptionTierFeature
@ -21,6 +22,8 @@ class ZooProductSubscription(BaseModel):
description: str
endpoints_included: Optional[List[ApiEndpoint]] = None
features: Optional[List[SubscriptionTierFeature]] = None
name: ModelingAppSubscriptionTierName

125
spec.json
View File

@ -15469,6 +15469,32 @@
"items"
]
},
"ApiEndpoint": {
"description": "Types of API endpoints.",
"oneOf": [
{
"description": "The modeling API.",
"type": "string",
"enum": [
"modeling"
]
},
{
"description": "Machine learning API.",
"type": "string",
"enum": [
"ml"
]
},
{
"description": "File API.",
"type": "string",
"enum": [
"file"
]
}
]
},
"ApiError": {
"description": "An error.",
"type": "object",
@ -17236,63 +17262,108 @@
"description": "ClientMetrics contains information regarding the state of the peer.",
"type": "object",
"properties": {
"rtc_frame_height": {
"nullable": true,
"description": "The height of the inbound video stream in pixels.\n\nhttps://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-frameheight",
"type": "integer",
"format": "uint32",
"minimum": 0
},
"rtc_frame_width": {
"nullable": true,
"description": "The width of the inbound video stream in pixels.\n\nhttps://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-framewidth",
"type": "integer",
"format": "uint32",
"minimum": 0
},
"rtc_frames_decoded": {
"description": "Counter of the number of WebRTC frames that the client has decoded during this session.",
"nullable": true,
"description": "Counter of the number of WebRTC frames that the client has decoded from the inbound video stream.\n\nhttps://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-freezecount",
"type": "integer",
"format": "uint64",
"minimum": 0
},
"rtc_frames_dropped": {
"description": "Counter of the number of WebRTC frames the client has dropped during this session.",
"nullable": true,
"description": "Counter of the number of WebRTC frames the client has dropped from the inbound video stream.\n\nhttps://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-framesdropped",
"type": "integer",
"format": "uint32",
"minimum": 0
},
"rtc_frames_per_second": {
"description": "Current number of frames being rendered per second. A good target is 60 frames per second, but it can fluctuate depending on network conditions.",
"nullable": true,
"description": "Current number of frames being rendered in the last second. A good target is 60 frames per second, but it can fluctuate depending on network conditions.\n\nhttps://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-freezecount",
"type": "integer",
"format": "uint8",
"minimum": 0
},
"rtc_frames_received": {
"description": "Counter of the number of WebRTC frames that the client has received during this session.",
"nullable": true,
"description": "Counter of the number of WebRTC frames that the client has received from the inbound video stream.\n\nhttps://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-freezecount",
"type": "integer",
"format": "uint64",
"minimum": 0
},
"rtc_freeze_count": {
"description": "Number of times the WebRTC playback has frozen. This is usually due to network conditions.",
"nullable": true,
"description": "Number of times the inbound video playback has frozen. This is usually due to network conditions.\n\nhttps://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-freezecount",
"type": "integer",
"format": "uint32",
"minimum": 0
},
"rtc_jitter_sec": {
"description": "Amount of \"jitter\" in the WebRTC session. Network latency is the time it takes a packet to traverse the network. The amount that the latency varies is the jitter. Video latency is the time it takes to render a frame sent by the server (including network latency). A low jitter means the video latency can be reduced without impacting smooth playback. High jitter means clients will increase video latency to ensure smooth playback.",
"nullable": true,
"description": "Amount of \"jitter\" in the inbound video stream. Network latency is the time it takes a packet to traverse the network. The amount that the latency varies is the jitter. Video latency is the time it takes to render a frame sent by the server (including network latency). A low jitter means the video latency can be reduced without impacting smooth playback. High jitter means clients will increase video latency to ensure smooth playback.\n\nhttps://www.w3.org/TR/webrtc-stats/#dom-rtcreceivedrtpstreamstats-jitter",
"type": "number",
"format": "float"
"format": "double"
},
"rtc_keyframes_decoded": {
"description": "Number of \"key frames\" decoded in the underlying h.264 stream. A key frame is an expensive (bandwidth-wise) \"full image\" of the video frame. Data after the keyframe become -- effectively -- \"diff\" operations on that key frame. The Engine will only send a keyframe if required, which is an indication that some of the \"diffs\" have been lost, usually an indication of poor network conditions. We like this metric to understand times when the connection has had to recover.",
"nullable": true,
"description": "Number of \"key frames\" decoded in the inbound h.264 stream. A key frame is an expensive (bandwidth-wise) \"full image\" of the video frame. Data after the keyframe become -- effectively -- \"diff\" operations on that key frame. The Engine will only send a keyframe if required, which is an indication that some of the \"diffs\" have been lost, usually an indication of poor network conditions. We like this metric to understand times when the connection has had to recover.\n\nhttps://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-keyframesdecoded",
"type": "integer",
"format": "uint32",
"minimum": 0
},
"rtc_packets_lost": {
"nullable": true,
"description": "Amount of packets lost in the inbound video stream.\n\nhttps://www.w3.org/TR/webrtc-stats/#dom-rtcreceivedrtpstreamstats-packetslost",
"type": "integer",
"format": "uint32",
"minimum": 0
},
"rtc_pause_count": {
"nullable": true,
"description": "Count of the total number of video pauses experienced by this receiver.\n\nhttps://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-pausecount",
"type": "integer",
"format": "uint32",
"minimum": 0
},
"rtc_pli_count": {
"nullable": true,
"description": "Count the total number of Picture Loss Indication (PLI) packets.\n\nhttps://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-plicount",
"type": "integer",
"format": "uint32",
"minimum": 0
},
"rtc_stun_rtt_sec": {
"nullable": true,
"description": "Total duration of pauses in seconds.\n\nThis is the \"ping\" between the client and the STUN server. Not to be confused with the E2E RTT documented [here](https://www.w3.org/TR/webrtc-stats/#dom-rtcremoteinboundrtpstreamstats-roundtriptime)\n\nhttps://www.w3.org/TR/webrtc-stats/#dom-rtcicecandidatepairstats-currentroundtriptime",
"type": "number",
"format": "float"
},
"rtc_total_freezes_duration_sec": {
"description": "Number of seconds of frozen video the user has been subjected to.",
"nullable": true,
"description": "Number of seconds of frozen video the user has been subjected to.\n\nhttps://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-totalfreezesduration",
"type": "number",
"format": "float"
},
"rtc_total_pauses_duration_sec": {
"nullable": true,
"description": "Count of the total number of video pauses experienced by this receiver.\n\nhttps://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-totalpausesduration",
"type": "number",
"format": "float"
}
},
"required": [
"rtc_frames_decoded",
"rtc_frames_dropped",
"rtc_frames_per_second",
"rtc_frames_received",
"rtc_freeze_count",
"rtc_jitter_sec",
"rtc_keyframes_decoded",
"rtc_total_freezes_duration_sec"
]
}
},
"ClosePath": {
"description": "The response from the `ClosePath` command.",
@ -21933,6 +22004,13 @@
"description": "A description of the tier.",
"type": "string"
},
"endpoints_included": {
"description": "The Zoo API endpoints that are included when through an approved zoo tool.",
"type": "array",
"items": {
"$ref": "#/components/schemas/ApiEndpoint"
}
},
"features": {
"description": "Features that are included in the subscription.",
"type": "array",
@ -34377,6 +34455,13 @@
"description": "A description of the tier.",
"type": "string"
},
"endpoints_included": {
"description": "The Zoo API endpoints that are included when through an approved zoo tool.",
"type": "array",
"items": {
"$ref": "#/components/schemas/ApiEndpoint"
}
},
"features": {
"description": "Features that are included in the subscription.",
"type": "array",