Update api spec (#435)
* 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
1744ab6385
commit
24e80f4568
File diff suppressed because it is too large
Load Diff
107
kittycad/api/users/patch_user_crm.py
Normal file
107
kittycad/api/users/patch_user_crm.py
Normal file
@ -0,0 +1,107 @@
|
||||
from typing import Any, Dict, Optional
|
||||
|
||||
import httpx
|
||||
|
||||
from ...client import Client
|
||||
from ...models.crm_data import CrmData
|
||||
from ...models.error import Error
|
||||
from ...types import Response
|
||||
|
||||
|
||||
def _get_kwargs(
|
||||
body: CrmData,
|
||||
*,
|
||||
client: Client,
|
||||
) -> Dict[str, Any]:
|
||||
url = "{}/user/crm".format(
|
||||
client.base_url,
|
||||
) # noqa: E501
|
||||
|
||||
headers: Dict[str, Any] = client.get_headers()
|
||||
cookies: Dict[str, Any] = client.get_cookies()
|
||||
|
||||
return {
|
||||
"url": url,
|
||||
"headers": headers,
|
||||
"cookies": cookies,
|
||||
"timeout": client.get_timeout(),
|
||||
"content": body.model_dump_json(),
|
||||
}
|
||||
|
||||
|
||||
def _parse_response(*, response: httpx.Response) -> Optional[Error]:
|
||||
return None
|
||||
if response.status_code == 400:
|
||||
response_4XX = Error(**response.json())
|
||||
return response_4XX
|
||||
if response.status_code == 500:
|
||||
response_5XX = Error(**response.json())
|
||||
return response_5XX
|
||||
return Error(**response.json())
|
||||
|
||||
|
||||
def _build_response(*, response: httpx.Response) -> Response[Optional[Error]]:
|
||||
return Response(
|
||||
status_code=response.status_code,
|
||||
content=response.content,
|
||||
headers=response.headers,
|
||||
parsed=_parse_response(response=response),
|
||||
)
|
||||
|
||||
|
||||
def sync_detailed(
|
||||
body: CrmData,
|
||||
*,
|
||||
client: Client,
|
||||
) -> Response[Optional[Error]]:
|
||||
kwargs = _get_kwargs(
|
||||
body=body,
|
||||
client=client,
|
||||
)
|
||||
|
||||
response = httpx.patch(
|
||||
verify=client.verify_ssl,
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
return _build_response(response=response)
|
||||
|
||||
|
||||
def sync(
|
||||
body: CrmData,
|
||||
*,
|
||||
client: Client,
|
||||
) -> Optional[Error]:
|
||||
return sync_detailed(
|
||||
body=body,
|
||||
client=client,
|
||||
).parsed
|
||||
|
||||
|
||||
async def asyncio_detailed(
|
||||
body: CrmData,
|
||||
*,
|
||||
client: Client,
|
||||
) -> Response[Optional[Error]]:
|
||||
kwargs = _get_kwargs(
|
||||
body=body,
|
||||
client=client,
|
||||
)
|
||||
|
||||
async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
|
||||
response = await _client.patch(**kwargs)
|
||||
|
||||
return _build_response(response=response)
|
||||
|
||||
|
||||
async def asyncio(
|
||||
body: CrmData,
|
||||
*,
|
||||
client: Client,
|
||||
) -> Optional[Error]:
|
||||
return (
|
||||
await asyncio_detailed(
|
||||
body=body,
|
||||
client=client,
|
||||
)
|
||||
).parsed
|
111
kittycad/api/users/put_public_form.py
Normal file
111
kittycad/api/users/put_public_form.py
Normal file
@ -0,0 +1,111 @@
|
||||
from typing import Any, Dict, Optional
|
||||
|
||||
import httpx
|
||||
|
||||
from ...client import Client
|
||||
from ...models.error import Error
|
||||
from ...models.inquiry_form import InquiryForm
|
||||
from ...types import Response
|
||||
|
||||
|
||||
def _get_kwargs(
|
||||
body: InquiryForm,
|
||||
*,
|
||||
client: Client,
|
||||
) -> Dict[str, Any]:
|
||||
url = "{}/website/form".format(
|
||||
client.base_url,
|
||||
) # noqa: E501
|
||||
|
||||
headers: Dict[str, Any] = client.get_headers()
|
||||
cookies: Dict[str, Any] = client.get_cookies()
|
||||
|
||||
return {
|
||||
"url": url,
|
||||
"headers": headers,
|
||||
"cookies": cookies,
|
||||
"timeout": client.get_timeout(),
|
||||
"content": body.model_dump_json(),
|
||||
}
|
||||
|
||||
|
||||
def _parse_response(*, response: httpx.Response) -> Optional[Error]:
|
||||
return None
|
||||
if response.status_code == 400:
|
||||
response_4XX = Error(**response.json())
|
||||
return response_4XX
|
||||
if response.status_code == 500:
|
||||
response_5XX = Error(**response.json())
|
||||
return response_5XX
|
||||
return Error(**response.json())
|
||||
|
||||
|
||||
def _build_response(*, response: httpx.Response) -> Response[Optional[Error]]:
|
||||
return Response(
|
||||
status_code=response.status_code,
|
||||
content=response.content,
|
||||
headers=response.headers,
|
||||
parsed=_parse_response(response=response),
|
||||
)
|
||||
|
||||
|
||||
def sync_detailed(
|
||||
body: InquiryForm,
|
||||
*,
|
||||
client: Client,
|
||||
) -> Response[Optional[Error]]:
|
||||
kwargs = _get_kwargs(
|
||||
body=body,
|
||||
client=client,
|
||||
)
|
||||
|
||||
response = httpx.put(
|
||||
verify=client.verify_ssl,
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
return _build_response(response=response)
|
||||
|
||||
|
||||
def sync(
|
||||
body: InquiryForm,
|
||||
*,
|
||||
client: Client,
|
||||
) -> Optional[Error]:
|
||||
"""users and is not authenticated.""" # noqa: E501
|
||||
|
||||
return sync_detailed(
|
||||
body=body,
|
||||
client=client,
|
||||
).parsed
|
||||
|
||||
|
||||
async def asyncio_detailed(
|
||||
body: InquiryForm,
|
||||
*,
|
||||
client: Client,
|
||||
) -> Response[Optional[Error]]:
|
||||
kwargs = _get_kwargs(
|
||||
body=body,
|
||||
client=client,
|
||||
)
|
||||
|
||||
async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
|
||||
response = await _client.put(**kwargs)
|
||||
|
||||
return _build_response(response=response)
|
||||
|
||||
|
||||
async def asyncio(
|
||||
body: InquiryForm,
|
||||
*,
|
||||
client: Client,
|
||||
) -> Optional[Error]:
|
||||
"""users and is not authenticated.""" # noqa: E501
|
||||
|
||||
return (
|
||||
await asyncio_detailed(
|
||||
body=body,
|
||||
client=client,
|
||||
)
|
||||
).parsed
|
107
kittycad/api/users/put_public_subscribe.py
Normal file
107
kittycad/api/users/put_public_subscribe.py
Normal file
@ -0,0 +1,107 @@
|
||||
from typing import Any, Dict, Optional
|
||||
|
||||
import httpx
|
||||
|
||||
from ...client import Client
|
||||
from ...models.error import Error
|
||||
from ...models.subscribe import Subscribe
|
||||
from ...types import Response
|
||||
|
||||
|
||||
def _get_kwargs(
|
||||
body: Subscribe,
|
||||
*,
|
||||
client: Client,
|
||||
) -> Dict[str, Any]:
|
||||
url = "{}/website/subscribe".format(
|
||||
client.base_url,
|
||||
) # noqa: E501
|
||||
|
||||
headers: Dict[str, Any] = client.get_headers()
|
||||
cookies: Dict[str, Any] = client.get_cookies()
|
||||
|
||||
return {
|
||||
"url": url,
|
||||
"headers": headers,
|
||||
"cookies": cookies,
|
||||
"timeout": client.get_timeout(),
|
||||
"content": body.model_dump_json(),
|
||||
}
|
||||
|
||||
|
||||
def _parse_response(*, response: httpx.Response) -> Optional[Error]:
|
||||
return None
|
||||
if response.status_code == 400:
|
||||
response_4XX = Error(**response.json())
|
||||
return response_4XX
|
||||
if response.status_code == 500:
|
||||
response_5XX = Error(**response.json())
|
||||
return response_5XX
|
||||
return Error(**response.json())
|
||||
|
||||
|
||||
def _build_response(*, response: httpx.Response) -> Response[Optional[Error]]:
|
||||
return Response(
|
||||
status_code=response.status_code,
|
||||
content=response.content,
|
||||
headers=response.headers,
|
||||
parsed=_parse_response(response=response),
|
||||
)
|
||||
|
||||
|
||||
def sync_detailed(
|
||||
body: Subscribe,
|
||||
*,
|
||||
client: Client,
|
||||
) -> Response[Optional[Error]]:
|
||||
kwargs = _get_kwargs(
|
||||
body=body,
|
||||
client=client,
|
||||
)
|
||||
|
||||
response = httpx.put(
|
||||
verify=client.verify_ssl,
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
return _build_response(response=response)
|
||||
|
||||
|
||||
def sync(
|
||||
body: Subscribe,
|
||||
*,
|
||||
client: Client,
|
||||
) -> Optional[Error]:
|
||||
return sync_detailed(
|
||||
body=body,
|
||||
client=client,
|
||||
).parsed
|
||||
|
||||
|
||||
async def asyncio_detailed(
|
||||
body: Subscribe,
|
||||
*,
|
||||
client: Client,
|
||||
) -> Response[Optional[Error]]:
|
||||
kwargs = _get_kwargs(
|
||||
body=body,
|
||||
client=client,
|
||||
)
|
||||
|
||||
async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
|
||||
response = await _client.put(**kwargs)
|
||||
|
||||
return _build_response(response=response)
|
||||
|
||||
|
||||
async def asyncio(
|
||||
body: Subscribe,
|
||||
*,
|
||||
client: Client,
|
||||
) -> Optional[Error]:
|
||||
return (
|
||||
await asyncio_detailed(
|
||||
body=body,
|
||||
client=client,
|
||||
)
|
||||
).parsed
|
111
kittycad/api/users/put_user_form_self.py
Normal file
111
kittycad/api/users/put_user_form_self.py
Normal file
@ -0,0 +1,111 @@
|
||||
from typing import Any, Dict, Optional
|
||||
|
||||
import httpx
|
||||
|
||||
from ...client import Client
|
||||
from ...models.error import Error
|
||||
from ...models.inquiry_form import InquiryForm
|
||||
from ...types import Response
|
||||
|
||||
|
||||
def _get_kwargs(
|
||||
body: InquiryForm,
|
||||
*,
|
||||
client: Client,
|
||||
) -> Dict[str, Any]:
|
||||
url = "{}/user/form".format(
|
||||
client.base_url,
|
||||
) # noqa: E501
|
||||
|
||||
headers: Dict[str, Any] = client.get_headers()
|
||||
cookies: Dict[str, Any] = client.get_cookies()
|
||||
|
||||
return {
|
||||
"url": url,
|
||||
"headers": headers,
|
||||
"cookies": cookies,
|
||||
"timeout": client.get_timeout(),
|
||||
"content": body.model_dump_json(),
|
||||
}
|
||||
|
||||
|
||||
def _parse_response(*, response: httpx.Response) -> Optional[Error]:
|
||||
return None
|
||||
if response.status_code == 400:
|
||||
response_4XX = Error(**response.json())
|
||||
return response_4XX
|
||||
if response.status_code == 500:
|
||||
response_5XX = Error(**response.json())
|
||||
return response_5XX
|
||||
return Error(**response.json())
|
||||
|
||||
|
||||
def _build_response(*, response: httpx.Response) -> Response[Optional[Error]]:
|
||||
return Response(
|
||||
status_code=response.status_code,
|
||||
content=response.content,
|
||||
headers=response.headers,
|
||||
parsed=_parse_response(response=response),
|
||||
)
|
||||
|
||||
|
||||
def sync_detailed(
|
||||
body: InquiryForm,
|
||||
*,
|
||||
client: Client,
|
||||
) -> Response[Optional[Error]]:
|
||||
kwargs = _get_kwargs(
|
||||
body=body,
|
||||
client=client,
|
||||
)
|
||||
|
||||
response = httpx.put(
|
||||
verify=client.verify_ssl,
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
return _build_response(response=response)
|
||||
|
||||
|
||||
def sync(
|
||||
body: InquiryForm,
|
||||
*,
|
||||
client: Client,
|
||||
) -> Optional[Error]:
|
||||
"""It gets attached to the user's account.""" # noqa: E501
|
||||
|
||||
return sync_detailed(
|
||||
body=body,
|
||||
client=client,
|
||||
).parsed
|
||||
|
||||
|
||||
async def asyncio_detailed(
|
||||
body: InquiryForm,
|
||||
*,
|
||||
client: Client,
|
||||
) -> Response[Optional[Error]]:
|
||||
kwargs = _get_kwargs(
|
||||
body=body,
|
||||
client=client,
|
||||
)
|
||||
|
||||
async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
|
||||
response = await _client.put(**kwargs)
|
||||
|
||||
return _build_response(response=response)
|
||||
|
||||
|
||||
async def asyncio(
|
||||
body: InquiryForm,
|
||||
*,
|
||||
client: Client,
|
||||
) -> Optional[Error]:
|
||||
"""It gets attached to the user's account.""" # noqa: E501
|
||||
|
||||
return (
|
||||
await asyncio_detailed(
|
||||
body=body,
|
||||
client=client,
|
||||
)
|
||||
).parsed
|
@ -158,6 +158,10 @@ from kittycad.api.users import (
|
||||
get_user_shortlinks,
|
||||
list_users,
|
||||
list_users_extended,
|
||||
patch_user_crm,
|
||||
put_public_form,
|
||||
put_public_subscribe,
|
||||
put_user_form_self,
|
||||
update_user_privacy_settings,
|
||||
update_user_self,
|
||||
update_user_shortlink,
|
||||
@ -239,6 +243,7 @@ from kittycad.models.billing_info import BillingInfo
|
||||
from kittycad.models.code_language import CodeLanguage
|
||||
from kittycad.models.create_shortlink_request import CreateShortlinkRequest
|
||||
from kittycad.models.created_at_sort_mode import CreatedAtSortMode
|
||||
from kittycad.models.crm_data import CrmData
|
||||
from kittycad.models.email_authentication_form import EmailAuthenticationForm
|
||||
from kittycad.models.enterprise_subscription_tier_price import (
|
||||
EnterpriseSubscriptionTierPrice,
|
||||
@ -251,6 +256,8 @@ from kittycad.models.idp_metadata_source import (
|
||||
IdpMetadataSource,
|
||||
OptionBase64EncodedXml,
|
||||
)
|
||||
from kittycad.models.inquiry_form import InquiryForm
|
||||
from kittycad.models.inquiry_type import InquiryType
|
||||
from kittycad.models.kcl_code_completion_params import KclCodeCompletionParams
|
||||
from kittycad.models.kcl_code_completion_request import KclCodeCompletionRequest
|
||||
from kittycad.models.ml_feedback import MlFeedback
|
||||
@ -274,6 +281,7 @@ from kittycad.models.source_position import SourcePosition
|
||||
from kittycad.models.source_range import SourceRange
|
||||
from kittycad.models.source_range_prompt import SourceRangePrompt
|
||||
from kittycad.models.store_coupon_params import StoreCouponParams
|
||||
from kittycad.models.subscribe import Subscribe
|
||||
from kittycad.models.text_to_cad_create_body import TextToCadCreateBody
|
||||
from kittycad.models.text_to_cad_iteration_body import TextToCadIterationBody
|
||||
from kittycad.models.text_to_cad_multi_file_iteration_body import (
|
||||
@ -5731,6 +5739,49 @@ async def test_delete_api_token_for_user_async():
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.skip
|
||||
def test_patch_user_crm():
|
||||
# Create our client.
|
||||
client = ClientFromEnv()
|
||||
|
||||
result: Optional[Error] = patch_user_crm.sync(
|
||||
client=client,
|
||||
body=CrmData(),
|
||||
)
|
||||
|
||||
if isinstance(result, Error) or result is None:
|
||||
print(result)
|
||||
raise Exception("Error in response")
|
||||
|
||||
body: Error = result
|
||||
print(body)
|
||||
|
||||
# OR if you need more info (e.g. status_code)
|
||||
response: Response[Optional[Error]] = patch_user_crm.sync_detailed(
|
||||
client=client,
|
||||
body=CrmData(),
|
||||
)
|
||||
|
||||
|
||||
# OR run async
|
||||
@pytest.mark.asyncio
|
||||
@pytest.mark.skip
|
||||
async def test_patch_user_crm_async():
|
||||
# Create our client.
|
||||
client = ClientFromEnv()
|
||||
|
||||
result: Optional[Error] = await patch_user_crm.asyncio(
|
||||
client=client,
|
||||
body=CrmData(),
|
||||
)
|
||||
|
||||
# OR run async with more info
|
||||
response: Response[Optional[Error]] = await patch_user_crm.asyncio_detailed(
|
||||
client=client,
|
||||
body=CrmData(),
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.skip
|
||||
def test_get_user_self_extended():
|
||||
# Create our client.
|
||||
@ -5774,6 +5825,73 @@ async def test_get_user_self_extended_async():
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.skip
|
||||
def test_put_user_form_self():
|
||||
# Create our client.
|
||||
client = ClientFromEnv()
|
||||
|
||||
result: Optional[Error] = put_user_form_self.sync(
|
||||
client=client,
|
||||
body=InquiryForm(
|
||||
email="<string>",
|
||||
first_name="<string>",
|
||||
inquiry_type=InquiryType.GENERAL_INQUIRY,
|
||||
last_name="<string>",
|
||||
message="<string>",
|
||||
),
|
||||
)
|
||||
|
||||
if isinstance(result, Error) or result is None:
|
||||
print(result)
|
||||
raise Exception("Error in response")
|
||||
|
||||
body: Error = result
|
||||
print(body)
|
||||
|
||||
# OR if you need more info (e.g. status_code)
|
||||
response: Response[Optional[Error]] = put_user_form_self.sync_detailed(
|
||||
client=client,
|
||||
body=InquiryForm(
|
||||
email="<string>",
|
||||
first_name="<string>",
|
||||
inquiry_type=InquiryType.GENERAL_INQUIRY,
|
||||
last_name="<string>",
|
||||
message="<string>",
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
# OR run async
|
||||
@pytest.mark.asyncio
|
||||
@pytest.mark.skip
|
||||
async def test_put_user_form_self_async():
|
||||
# Create our client.
|
||||
client = ClientFromEnv()
|
||||
|
||||
result: Optional[Error] = await put_user_form_self.asyncio(
|
||||
client=client,
|
||||
body=InquiryForm(
|
||||
email="<string>",
|
||||
first_name="<string>",
|
||||
inquiry_type=InquiryType.GENERAL_INQUIRY,
|
||||
last_name="<string>",
|
||||
message="<string>",
|
||||
),
|
||||
)
|
||||
|
||||
# OR run async with more info
|
||||
response: Response[Optional[Error]] = await put_user_form_self.asyncio_detailed(
|
||||
client=client,
|
||||
body=InquiryForm(
|
||||
email="<string>",
|
||||
first_name="<string>",
|
||||
inquiry_type=InquiryType.GENERAL_INQUIRY,
|
||||
last_name="<string>",
|
||||
message="<string>",
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.skip
|
||||
def test_get_oauth2_providers_for_user():
|
||||
# Create our client.
|
||||
@ -7510,6 +7628,124 @@ async def test_update_payment_balance_for_any_user_async():
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.skip
|
||||
def test_put_public_form():
|
||||
# Create our client.
|
||||
client = ClientFromEnv()
|
||||
|
||||
result: Optional[Error] = put_public_form.sync(
|
||||
client=client,
|
||||
body=InquiryForm(
|
||||
email="<string>",
|
||||
first_name="<string>",
|
||||
inquiry_type=InquiryType.GENERAL_INQUIRY,
|
||||
last_name="<string>",
|
||||
message="<string>",
|
||||
),
|
||||
)
|
||||
|
||||
if isinstance(result, Error) or result is None:
|
||||
print(result)
|
||||
raise Exception("Error in response")
|
||||
|
||||
body: Error = result
|
||||
print(body)
|
||||
|
||||
# OR if you need more info (e.g. status_code)
|
||||
response: Response[Optional[Error]] = put_public_form.sync_detailed(
|
||||
client=client,
|
||||
body=InquiryForm(
|
||||
email="<string>",
|
||||
first_name="<string>",
|
||||
inquiry_type=InquiryType.GENERAL_INQUIRY,
|
||||
last_name="<string>",
|
||||
message="<string>",
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
# OR run async
|
||||
@pytest.mark.asyncio
|
||||
@pytest.mark.skip
|
||||
async def test_put_public_form_async():
|
||||
# Create our client.
|
||||
client = ClientFromEnv()
|
||||
|
||||
result: Optional[Error] = await put_public_form.asyncio(
|
||||
client=client,
|
||||
body=InquiryForm(
|
||||
email="<string>",
|
||||
first_name="<string>",
|
||||
inquiry_type=InquiryType.GENERAL_INQUIRY,
|
||||
last_name="<string>",
|
||||
message="<string>",
|
||||
),
|
||||
)
|
||||
|
||||
# OR run async with more info
|
||||
response: Response[Optional[Error]] = await put_public_form.asyncio_detailed(
|
||||
client=client,
|
||||
body=InquiryForm(
|
||||
email="<string>",
|
||||
first_name="<string>",
|
||||
inquiry_type=InquiryType.GENERAL_INQUIRY,
|
||||
last_name="<string>",
|
||||
message="<string>",
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.skip
|
||||
def test_put_public_subscribe():
|
||||
# Create our client.
|
||||
client = ClientFromEnv()
|
||||
|
||||
result: Optional[Error] = put_public_subscribe.sync(
|
||||
client=client,
|
||||
body=Subscribe(
|
||||
email="<string>",
|
||||
),
|
||||
)
|
||||
|
||||
if isinstance(result, Error) or result is None:
|
||||
print(result)
|
||||
raise Exception("Error in response")
|
||||
|
||||
body: Error = result
|
||||
print(body)
|
||||
|
||||
# OR if you need more info (e.g. status_code)
|
||||
response: Response[Optional[Error]] = put_public_subscribe.sync_detailed(
|
||||
client=client,
|
||||
body=Subscribe(
|
||||
email="<string>",
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
# OR run async
|
||||
@pytest.mark.asyncio
|
||||
@pytest.mark.skip
|
||||
async def test_put_public_subscribe_async():
|
||||
# Create our client.
|
||||
client = ClientFromEnv()
|
||||
|
||||
result: Optional[Error] = await put_public_subscribe.asyncio(
|
||||
client=client,
|
||||
body=Subscribe(
|
||||
email="<string>",
|
||||
),
|
||||
)
|
||||
|
||||
# OR run async with more info
|
||||
response: Response[Optional[Error]] = await put_public_subscribe.asyncio_detailed(
|
||||
client=client,
|
||||
body=Subscribe(
|
||||
email="<string>",
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.skip
|
||||
def test_create_executor_term():
|
||||
# Create our client.
|
||||
|
@ -60,6 +60,7 @@ from .coupon import Coupon
|
||||
from .create_shortlink_request import CreateShortlinkRequest
|
||||
from .create_shortlink_response import CreateShortlinkResponse
|
||||
from .created_at_sort_mode import CreatedAtSortMode
|
||||
from .crm_data import CrmData
|
||||
from .currency import Currency
|
||||
from .curve_get_control_points import CurveGetControlPoints
|
||||
from .curve_get_end_points import CurveGetEndPoints
|
||||
@ -168,6 +169,8 @@ from .import_file import ImportFile
|
||||
from .import_files import ImportFiles
|
||||
from .imported_geometry import ImportedGeometry
|
||||
from .input_format3d import InputFormat3d
|
||||
from .inquiry_form import InquiryForm
|
||||
from .inquiry_type import InquiryType
|
||||
from .invoice import Invoice
|
||||
from .invoice_line_item import InvoiceLineItem
|
||||
from .invoice_status import InvoiceStatus
|
||||
@ -319,6 +322,7 @@ from .source_range_prompt import SourceRangePrompt
|
||||
from .start_path import StartPath
|
||||
from .stl_storage import StlStorage
|
||||
from .store_coupon_params import StoreCouponParams
|
||||
from .subscribe import Subscribe
|
||||
from .subscription_tier_feature import SubscriptionTierFeature
|
||||
from .subscription_tier_price import SubscriptionTierPrice
|
||||
from .subscription_tier_type import SubscriptionTierType
|
||||
|
15
kittycad/models/crm_data.py
Normal file
15
kittycad/models/crm_data.py
Normal file
@ -0,0 +1,15 @@
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
|
||||
|
||||
class CrmData(BaseModel):
|
||||
"""The data for subscribing a user to the newsletter."""
|
||||
|
||||
cad_industry: Optional[str] = None
|
||||
|
||||
cad_user_count: Optional[str] = None
|
||||
|
||||
cad_user_type: Optional[str] = None
|
||||
|
||||
model_config = ConfigDict(protected_namespaces=())
|
@ -6,7 +6,7 @@ class Environment(str, Enum):
|
||||
|
||||
"""# The development environment. This is for running locally. """ # noqa: E501
|
||||
DEVELOPMENT = "DEVELOPMENT"
|
||||
"""# The preview environment. This is when PRs are created and a service is deployed for testing. """ # noqa: E501
|
||||
"""# The preview environment. This is deployed to api.dev.zoo.dev. """ # noqa: E501
|
||||
PREVIEW = "PREVIEW"
|
||||
"""# The production environment. """ # noqa: E501
|
||||
PRODUCTION = "PRODUCTION"
|
||||
|
@ -38,6 +38,8 @@ class ExtendedUser(BaseModel):
|
||||
|
||||
image: str
|
||||
|
||||
is_onboarded: bool = False
|
||||
|
||||
is_service_account: bool = False
|
||||
|
||||
last_name: Optional[str] = None
|
||||
|
27
kittycad/models/inquiry_form.py
Normal file
27
kittycad/models/inquiry_form.py
Normal file
@ -0,0 +1,27 @@
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
|
||||
from ..models.inquiry_type import InquiryType
|
||||
|
||||
|
||||
class InquiryForm(BaseModel):
|
||||
"""The form for a public inquiry submission."""
|
||||
|
||||
company: Optional[str] = None
|
||||
|
||||
email: str
|
||||
|
||||
first_name: str
|
||||
|
||||
industry: Optional[str] = None
|
||||
|
||||
inquiry_type: InquiryType
|
||||
|
||||
last_name: str
|
||||
|
||||
message: str
|
||||
|
||||
phone: Optional[str] = None
|
||||
|
||||
model_config = ConfigDict(protected_namespaces=())
|
25
kittycad/models/inquiry_type.py
Normal file
25
kittycad/models/inquiry_type.py
Normal file
@ -0,0 +1,25 @@
|
||||
from enum import Enum
|
||||
|
||||
|
||||
class InquiryType(str, Enum):
|
||||
"""The type of inquiry.""" # noqa: E501
|
||||
|
||||
"""# General inquiry about the service or product. """ # noqa: E501
|
||||
GENERAL_INQUIRY = "general_inquiry"
|
||||
"""# Questions related to sales or purchasing. """ # noqa: E501
|
||||
SALES_QUESTION = "sales_question"
|
||||
"""# Inquiry from a developer, typically technical in nature. """ # noqa: E501
|
||||
DEVELOPER_INQUIRY = "developer_inquiry"
|
||||
"""# Opportunity for partnership or collaboration. """ # noqa: E501
|
||||
PARTNERSHIP_OPPORTUNITY = "partnership_opportunity"
|
||||
"""# Other inquiries related to sales that do not fit predefined categories. """ # noqa: E501
|
||||
OTHER_SALES_INQUIRY = "other_sales_inquiry"
|
||||
"""# Request for technical support or troubleshooting. """ # noqa: E501
|
||||
TECHNICAL_SUPPORT = "technical_support"
|
||||
"""# Questions or requests related to account management. """ # noqa: E501
|
||||
ACCOUNT_MANAGEMENT = "account_management"
|
||||
"""# Other support-related inquiries that do not fit predefined categories. """ # noqa: E501
|
||||
OTHER_SUPPORT_INQUIRY = "other_support_inquiry"
|
||||
|
||||
def __str__(self) -> str:
|
||||
return str(self.value)
|
9
kittycad/models/subscribe.py
Normal file
9
kittycad/models/subscribe.py
Normal file
@ -0,0 +1,9 @@
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
|
||||
|
||||
class Subscribe(BaseModel):
|
||||
"""The data for subscribing a user to the newsletter."""
|
||||
|
||||
email: str
|
||||
|
||||
model_config = ConfigDict(protected_namespaces=())
|
@ -16,6 +16,8 @@ class UpdateUser(BaseModel):
|
||||
|
||||
image: str
|
||||
|
||||
is_onboarded: Optional[bool] = None
|
||||
|
||||
last_name: Optional[str] = None
|
||||
|
||||
phone: str = ""
|
||||
|
@ -34,6 +34,8 @@ class User(BaseModel):
|
||||
|
||||
image: str
|
||||
|
||||
is_onboarded: bool = False
|
||||
|
||||
is_service_account: bool = False
|
||||
|
||||
last_name: Optional[str] = None
|
||||
|
770
spec.json
770
spec.json
@ -12675,6 +12675,156 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/user/crm": {
|
||||
"options": {
|
||||
"tags": [
|
||||
"hidden"
|
||||
],
|
||||
"summary": "OPTIONS endpoint.",
|
||||
"description": "This is necessary for some preflight requests, specifically POST, PUT, and DELETE.",
|
||||
"operationId": "options_patch_user_crm",
|
||||
"responses": {
|
||||
"204": {
|
||||
"description": "resource updated",
|
||||
"headers": {
|
||||
"Access-Control-Allow-Credentials": {
|
||||
"description": "Access-Control-Allow-Credentials header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Headers": {
|
||||
"description": "Access-Control-Allow-Headers header. This is a comma-separated list of headers.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Methods": {
|
||||
"description": "Access-Control-Allow-Methods header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Origin": {
|
||||
"description": "Access-Control-Allow-Origin header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Set-Cookie": {
|
||||
"description": "Set-Cookie header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"X-Api-Call-Id": {
|
||||
"description": "ID for this request. We return it so that users can report this to us and help us debug their problems.",
|
||||
"style": "simple",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"4XX": {
|
||||
"$ref": "#/components/responses/Error"
|
||||
},
|
||||
"5XX": {
|
||||
"$ref": "#/components/responses/Error"
|
||||
}
|
||||
}
|
||||
},
|
||||
"patch": {
|
||||
"tags": [
|
||||
"users",
|
||||
"hidden"
|
||||
],
|
||||
"summary": "Update properties in the CRM",
|
||||
"operationId": "patch_user_crm",
|
||||
"requestBody": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/CrmData"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": true
|
||||
},
|
||||
"responses": {
|
||||
"204": {
|
||||
"description": "successful operation, no content",
|
||||
"headers": {
|
||||
"Access-Control-Allow-Credentials": {
|
||||
"description": "Access-Control-Allow-Credentials header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Headers": {
|
||||
"description": "Access-Control-Allow-Headers header. This is a comma-separated list of headers.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Methods": {
|
||||
"description": "Access-Control-Allow-Methods header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Origin": {
|
||||
"description": "Access-Control-Allow-Origin header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Set-Cookie": {
|
||||
"description": "Set-Cookie header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"X-Api-Call-Id": {
|
||||
"description": "ID for this request. We return it so that users can report this to us and help us debug their problems.",
|
||||
"style": "simple",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"4XX": {
|
||||
"$ref": "#/components/responses/Error"
|
||||
},
|
||||
"5XX": {
|
||||
"$ref": "#/components/responses/Error"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/user/extended": {
|
||||
"get": {
|
||||
"tags": [
|
||||
@ -12753,6 +12903,157 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/user/form": {
|
||||
"put": {
|
||||
"tags": [
|
||||
"users",
|
||||
"hidden"
|
||||
],
|
||||
"summary": "Create a new support/sales ticket from the website contact form. This endpoint is authenticated.",
|
||||
"description": "It gets attached to the user's account.",
|
||||
"operationId": "put_user_form_self",
|
||||
"requestBody": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/InquiryForm"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": true
|
||||
},
|
||||
"responses": {
|
||||
"204": {
|
||||
"description": "successful operation, no content",
|
||||
"headers": {
|
||||
"Access-Control-Allow-Credentials": {
|
||||
"description": "Access-Control-Allow-Credentials header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Headers": {
|
||||
"description": "Access-Control-Allow-Headers header. This is a comma-separated list of headers.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Methods": {
|
||||
"description": "Access-Control-Allow-Methods header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Origin": {
|
||||
"description": "Access-Control-Allow-Origin header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Set-Cookie": {
|
||||
"description": "Set-Cookie header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"X-Api-Call-Id": {
|
||||
"description": "ID for this request. We return it so that users can report this to us and help us debug their problems.",
|
||||
"style": "simple",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"4XX": {
|
||||
"$ref": "#/components/responses/Error"
|
||||
},
|
||||
"5XX": {
|
||||
"$ref": "#/components/responses/Error"
|
||||
}
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
"tags": [
|
||||
"hidden"
|
||||
],
|
||||
"summary": "OPTIONS endpoint.",
|
||||
"description": "This is necessary for some preflight requests, specifically POST, PUT, and DELETE.",
|
||||
"operationId": "options_put_user_form_self",
|
||||
"responses": {
|
||||
"204": {
|
||||
"description": "resource updated",
|
||||
"headers": {
|
||||
"Access-Control-Allow-Credentials": {
|
||||
"description": "Access-Control-Allow-Credentials header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Headers": {
|
||||
"description": "Access-Control-Allow-Headers header. This is a comma-separated list of headers.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Methods": {
|
||||
"description": "Access-Control-Allow-Methods header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Origin": {
|
||||
"description": "Access-Control-Allow-Origin header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Set-Cookie": {
|
||||
"description": "Set-Cookie header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"X-Api-Call-Id": {
|
||||
"description": "ID for this request. We return it so that users can report this to us and help us debug their problems.",
|
||||
"style": "simple",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"4XX": {
|
||||
"$ref": "#/components/responses/Error"
|
||||
},
|
||||
"5XX": {
|
||||
"$ref": "#/components/responses/Error"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/user/oauth2/providers": {
|
||||
"get": {
|
||||
"tags": [
|
||||
@ -16446,6 +16747,307 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/website/form": {
|
||||
"put": {
|
||||
"tags": [
|
||||
"users",
|
||||
"hidden"
|
||||
],
|
||||
"summary": "Creates a new support/sales ticket from the website contact form. This endpoint is for untrusted",
|
||||
"description": "users and is not authenticated.",
|
||||
"operationId": "put_public_form",
|
||||
"requestBody": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/InquiryForm"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": true
|
||||
},
|
||||
"responses": {
|
||||
"204": {
|
||||
"description": "successful operation, no content",
|
||||
"headers": {
|
||||
"Access-Control-Allow-Credentials": {
|
||||
"description": "Access-Control-Allow-Credentials header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Headers": {
|
||||
"description": "Access-Control-Allow-Headers header. This is a comma-separated list of headers.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Methods": {
|
||||
"description": "Access-Control-Allow-Methods header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Origin": {
|
||||
"description": "Access-Control-Allow-Origin header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Set-Cookie": {
|
||||
"description": "Set-Cookie header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"X-Api-Call-Id": {
|
||||
"description": "ID for this request. We return it so that users can report this to us and help us debug their problems.",
|
||||
"style": "simple",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"4XX": {
|
||||
"$ref": "#/components/responses/Error"
|
||||
},
|
||||
"5XX": {
|
||||
"$ref": "#/components/responses/Error"
|
||||
}
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
"tags": [
|
||||
"hidden"
|
||||
],
|
||||
"summary": "OPTIONS endpoint.",
|
||||
"description": "This is necessary for some preflight requests, specifically POST, PUT, and DELETE.",
|
||||
"operationId": "options_put_public_form",
|
||||
"responses": {
|
||||
"204": {
|
||||
"description": "resource updated",
|
||||
"headers": {
|
||||
"Access-Control-Allow-Credentials": {
|
||||
"description": "Access-Control-Allow-Credentials header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Headers": {
|
||||
"description": "Access-Control-Allow-Headers header. This is a comma-separated list of headers.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Methods": {
|
||||
"description": "Access-Control-Allow-Methods header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Origin": {
|
||||
"description": "Access-Control-Allow-Origin header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Set-Cookie": {
|
||||
"description": "Set-Cookie header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"X-Api-Call-Id": {
|
||||
"description": "ID for this request. We return it so that users can report this to us and help us debug their problems.",
|
||||
"style": "simple",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"4XX": {
|
||||
"$ref": "#/components/responses/Error"
|
||||
},
|
||||
"5XX": {
|
||||
"$ref": "#/components/responses/Error"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/website/subscribe": {
|
||||
"put": {
|
||||
"tags": [
|
||||
"users",
|
||||
"hidden"
|
||||
],
|
||||
"summary": "Subscribes a user to the newsletter.",
|
||||
"operationId": "put_public_subscribe",
|
||||
"requestBody": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/Subscribe"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": true
|
||||
},
|
||||
"responses": {
|
||||
"204": {
|
||||
"description": "successful operation, no content",
|
||||
"headers": {
|
||||
"Access-Control-Allow-Credentials": {
|
||||
"description": "Access-Control-Allow-Credentials header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Headers": {
|
||||
"description": "Access-Control-Allow-Headers header. This is a comma-separated list of headers.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Methods": {
|
||||
"description": "Access-Control-Allow-Methods header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Origin": {
|
||||
"description": "Access-Control-Allow-Origin header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Set-Cookie": {
|
||||
"description": "Set-Cookie header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"X-Api-Call-Id": {
|
||||
"description": "ID for this request. We return it so that users can report this to us and help us debug their problems.",
|
||||
"style": "simple",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"4XX": {
|
||||
"$ref": "#/components/responses/Error"
|
||||
},
|
||||
"5XX": {
|
||||
"$ref": "#/components/responses/Error"
|
||||
}
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
"tags": [
|
||||
"hidden"
|
||||
],
|
||||
"summary": "OPTIONS endpoint.",
|
||||
"description": "This is necessary for some preflight requests, specifically POST, PUT, and DELETE.",
|
||||
"operationId": "options_put_public_subscribe",
|
||||
"responses": {
|
||||
"204": {
|
||||
"description": "resource updated",
|
||||
"headers": {
|
||||
"Access-Control-Allow-Credentials": {
|
||||
"description": "Access-Control-Allow-Credentials header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Headers": {
|
||||
"description": "Access-Control-Allow-Headers header. This is a comma-separated list of headers.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Methods": {
|
||||
"description": "Access-Control-Allow-Methods header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Access-Control-Allow-Origin": {
|
||||
"description": "Access-Control-Allow-Origin header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Set-Cookie": {
|
||||
"description": "Set-Cookie header.",
|
||||
"style": "simple",
|
||||
"schema": {
|
||||
"nullable": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"X-Api-Call-Id": {
|
||||
"description": "ID for this request. We return it so that users can report this to us and help us debug their problems.",
|
||||
"style": "simple",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"4XX": {
|
||||
"$ref": "#/components/responses/Error"
|
||||
},
|
||||
"5XX": {
|
||||
"$ref": "#/components/responses/Error"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/ws/executor/term": {
|
||||
"get": {
|
||||
"tags": [
|
||||
@ -19763,6 +20365,27 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"CrmData": {
|
||||
"description": "The data for subscribing a user to the newsletter.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"cad_industry": {
|
||||
"nullable": true,
|
||||
"description": "The industry of the user.",
|
||||
"type": "string"
|
||||
},
|
||||
"cad_user_count": {
|
||||
"nullable": true,
|
||||
"description": "The user count of the user.",
|
||||
"type": "string"
|
||||
},
|
||||
"cad_user_type": {
|
||||
"nullable": true,
|
||||
"description": "The user type.",
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Currency": {
|
||||
"description": "Currency is the list of supported currencies. Always lowercase.\n\nThis comes from the Stripe API docs: For more details see <https://support.stripe.com/questions/which-currencies-does-stripe-support>.",
|
||||
"type": "string"
|
||||
@ -20763,7 +21386,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "The preview environment. This is when PRs are created and a service is deployed for testing.",
|
||||
"description": "The preview environment. This is deployed to api.dev.zoo.dev.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"PREVIEW"
|
||||
@ -21094,6 +21717,11 @@
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"is_onboarded": {
|
||||
"description": "If the user has finished onboarding.",
|
||||
"default": false,
|
||||
"type": "boolean"
|
||||
},
|
||||
"is_service_account": {
|
||||
"description": "If the user is tied to a service account.",
|
||||
"default": false,
|
||||
@ -22707,6 +23335,120 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"InquiryForm": {
|
||||
"description": "The form for a public inquiry submission.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"company": {
|
||||
"nullable": true,
|
||||
"description": "The company name.",
|
||||
"type": "string"
|
||||
},
|
||||
"email": {
|
||||
"description": "The email address of the user.",
|
||||
"type": "string",
|
||||
"format": "email"
|
||||
},
|
||||
"first_name": {
|
||||
"description": "The first name of the user.",
|
||||
"type": "string"
|
||||
},
|
||||
"industry": {
|
||||
"nullable": true,
|
||||
"description": "The industry of the user.",
|
||||
"type": "string"
|
||||
},
|
||||
"inquiry_type": {
|
||||
"description": "The type of inquiry.",
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/components/schemas/InquiryType"
|
||||
}
|
||||
]
|
||||
},
|
||||
"last_name": {
|
||||
"description": "The last name of the user.",
|
||||
"type": "string"
|
||||
},
|
||||
"message": {
|
||||
"description": "The message content.",
|
||||
"type": "string"
|
||||
},
|
||||
"phone": {
|
||||
"nullable": true,
|
||||
"description": "The phone number of the user.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"email",
|
||||
"first_name",
|
||||
"inquiry_type",
|
||||
"last_name",
|
||||
"message"
|
||||
]
|
||||
},
|
||||
"InquiryType": {
|
||||
"description": "The type of inquiry.",
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "General inquiry about the service or product.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"general_inquiry"
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "Questions related to sales or purchasing.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"sales_question"
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "Inquiry from a developer, typically technical in nature.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"developer_inquiry"
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "Opportunity for partnership or collaboration.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"partnership_opportunity"
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "Other inquiries related to sales that do not fit predefined categories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"other_sales_inquiry"
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "Request for technical support or troubleshooting.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"technical_support"
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "Questions or requests related to account management.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"account_management"
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "Other support-related inquiries that do not fit predefined categories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"other_support_inquiry"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"Invoice": {
|
||||
"description": "An invoice.",
|
||||
"type": "object",
|
||||
@ -33355,6 +34097,20 @@
|
||||
"percent_off"
|
||||
]
|
||||
},
|
||||
"Subscribe": {
|
||||
"description": "The data for subscribing a user to the newsletter.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"email": {
|
||||
"description": "The email",
|
||||
"type": "string",
|
||||
"format": "email"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"email"
|
||||
]
|
||||
},
|
||||
"SubscriptionTierFeature": {
|
||||
"description": "A subscription tier feature.",
|
||||
"type": "object",
|
||||
@ -36187,6 +36943,11 @@
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"is_onboarded": {
|
||||
"nullable": true,
|
||||
"description": "If the user is now onboarded.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"last_name": {
|
||||
"description": "The user's last name.",
|
||||
"type": "string"
|
||||
@ -36232,7 +36993,7 @@
|
||||
"format": "date-time"
|
||||
},
|
||||
"deletion_scheduled": {
|
||||
"description": "If the user is scheduled for deletion",
|
||||
"description": "If the user is scheduled for deletion.",
|
||||
"default": false,
|
||||
"type": "boolean"
|
||||
},
|
||||
@ -36274,6 +37035,11 @@
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"is_onboarded": {
|
||||
"description": "If the user has finished onboarding.",
|
||||
"default": false,
|
||||
"type": "boolean"
|
||||
},
|
||||
"is_service_account": {
|
||||
"description": "If the user is tied to a service account.",
|
||||
"default": false,
|
||||
|
Reference in New Issue
Block a user