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:
committed by
GitHub
parent
d32c643b1e
commit
a7f6433735
File diff suppressed because it is too large
Load Diff
@ -17,6 +17,7 @@ from .api_call_query_group_by import ApiCallQueryGroupBy
|
|||||||
from .api_call_status import ApiCallStatus
|
from .api_call_status import ApiCallStatus
|
||||||
from .api_call_with_price import ApiCallWithPrice
|
from .api_call_with_price import ApiCallWithPrice
|
||||||
from .api_call_with_price_results_page import ApiCallWithPriceResultsPage
|
from .api_call_with_price_results_page import ApiCallWithPriceResultsPage
|
||||||
|
from .api_endpoint import ApiEndpoint
|
||||||
from .api_error import ApiError
|
from .api_error import ApiError
|
||||||
from .api_token import ApiToken
|
from .api_token import ApiToken
|
||||||
from .api_token_results_page import ApiTokenResultsPage
|
from .api_token_results_page import ApiTokenResultsPage
|
||||||
|
15
kittycad/models/api_endpoint.py
Normal file
15
kittycad/models/api_endpoint.py
Normal 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)
|
@ -1,23 +1,39 @@
|
|||||||
|
from typing import Optional
|
||||||
|
|
||||||
from pydantic import BaseModel, ConfigDict
|
from pydantic import BaseModel, ConfigDict
|
||||||
|
|
||||||
|
|
||||||
class ClientMetrics(BaseModel):
|
class ClientMetrics(BaseModel):
|
||||||
"""ClientMetrics contains information regarding the state of the peer."""
|
"""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=())
|
model_config = ConfigDict(protected_namespaces=())
|
||||||
|
@ -2,6 +2,7 @@ from typing import List, Optional
|
|||||||
|
|
||||||
from pydantic import BaseModel, ConfigDict
|
from pydantic import BaseModel, ConfigDict
|
||||||
|
|
||||||
|
from ..models.api_endpoint import ApiEndpoint
|
||||||
from ..models.modeling_app_share_links import ModelingAppShareLinks
|
from ..models.modeling_app_share_links import ModelingAppShareLinks
|
||||||
from ..models.modeling_app_subscription_tier_name import ModelingAppSubscriptionTierName
|
from ..models.modeling_app_subscription_tier_name import ModelingAppSubscriptionTierName
|
||||||
from ..models.subscription_tier_feature import SubscriptionTierFeature
|
from ..models.subscription_tier_feature import SubscriptionTierFeature
|
||||||
@ -21,6 +22,8 @@ class ModelingAppSubscriptionTier(BaseModel):
|
|||||||
|
|
||||||
description: str
|
description: str
|
||||||
|
|
||||||
|
endpoints_included: Optional[List[ApiEndpoint]] = None
|
||||||
|
|
||||||
features: Optional[List[SubscriptionTierFeature]] = None
|
features: Optional[List[SubscriptionTierFeature]] = None
|
||||||
|
|
||||||
name: ModelingAppSubscriptionTierName
|
name: ModelingAppSubscriptionTierName
|
||||||
|
@ -2,6 +2,7 @@ from typing import List, Optional
|
|||||||
|
|
||||||
from pydantic import BaseModel, ConfigDict
|
from pydantic import BaseModel, ConfigDict
|
||||||
|
|
||||||
|
from ..models.api_endpoint import ApiEndpoint
|
||||||
from ..models.modeling_app_share_links import ModelingAppShareLinks
|
from ..models.modeling_app_share_links import ModelingAppShareLinks
|
||||||
from ..models.modeling_app_subscription_tier_name import ModelingAppSubscriptionTierName
|
from ..models.modeling_app_subscription_tier_name import ModelingAppSubscriptionTierName
|
||||||
from ..models.subscription_tier_feature import SubscriptionTierFeature
|
from ..models.subscription_tier_feature import SubscriptionTierFeature
|
||||||
@ -21,6 +22,8 @@ class ZooProductSubscription(BaseModel):
|
|||||||
|
|
||||||
description: str
|
description: str
|
||||||
|
|
||||||
|
endpoints_included: Optional[List[ApiEndpoint]] = None
|
||||||
|
|
||||||
features: Optional[List[SubscriptionTierFeature]] = None
|
features: Optional[List[SubscriptionTierFeature]] = None
|
||||||
|
|
||||||
name: ModelingAppSubscriptionTierName
|
name: ModelingAppSubscriptionTierName
|
||||||
|
125
spec.json
125
spec.json
@ -15469,6 +15469,32 @@
|
|||||||
"items"
|
"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": {
|
"ApiError": {
|
||||||
"description": "An error.",
|
"description": "An error.",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
@ -17236,63 +17262,108 @@
|
|||||||
"description": "ClientMetrics contains information regarding the state of the peer.",
|
"description": "ClientMetrics contains information regarding the state of the peer.",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"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": {
|
"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",
|
"type": "integer",
|
||||||
"format": "uint64",
|
"format": "uint64",
|
||||||
"minimum": 0
|
"minimum": 0
|
||||||
},
|
},
|
||||||
"rtc_frames_dropped": {
|
"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",
|
"type": "integer",
|
||||||
"format": "uint32",
|
"format": "uint32",
|
||||||
"minimum": 0
|
"minimum": 0
|
||||||
},
|
},
|
||||||
"rtc_frames_per_second": {
|
"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",
|
"type": "integer",
|
||||||
"format": "uint8",
|
"format": "uint8",
|
||||||
"minimum": 0
|
"minimum": 0
|
||||||
},
|
},
|
||||||
"rtc_frames_received": {
|
"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",
|
"type": "integer",
|
||||||
"format": "uint64",
|
"format": "uint64",
|
||||||
"minimum": 0
|
"minimum": 0
|
||||||
},
|
},
|
||||||
"rtc_freeze_count": {
|
"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",
|
"type": "integer",
|
||||||
"format": "uint32",
|
"format": "uint32",
|
||||||
"minimum": 0
|
"minimum": 0
|
||||||
},
|
},
|
||||||
"rtc_jitter_sec": {
|
"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",
|
"type": "number",
|
||||||
"format": "float"
|
"format": "double"
|
||||||
},
|
},
|
||||||
"rtc_keyframes_decoded": {
|
"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",
|
"type": "integer",
|
||||||
"format": "uint32",
|
"format": "uint32",
|
||||||
"minimum": 0
|
"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": {
|
"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",
|
"type": "number",
|
||||||
"format": "float"
|
"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": {
|
"ClosePath": {
|
||||||
"description": "The response from the `ClosePath` command.",
|
"description": "The response from the `ClosePath` command.",
|
||||||
@ -21933,6 +22004,13 @@
|
|||||||
"description": "A description of the tier.",
|
"description": "A description of the tier.",
|
||||||
"type": "string"
|
"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": {
|
"features": {
|
||||||
"description": "Features that are included in the subscription.",
|
"description": "Features that are included in the subscription.",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
@ -34377,6 +34455,13 @@
|
|||||||
"description": "A description of the tier.",
|
"description": "A description of the tier.",
|
||||||
"type": "string"
|
"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": {
|
"features": {
|
||||||
"description": "Features that are included in the subscription.",
|
"description": "Features that are included in the subscription.",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
|
Reference in New Issue
Block a user