Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 19 additions & 1 deletion sdk-endpoints.txt
Original file line number Diff line number Diff line change
Expand Up @@ -153,20 +153,33 @@ GET /api/v1/models/metadata # not yet wrapped
GET /api/v1/traces # not yet wrapped
GET /api/v1/traces/count # not yet wrapped
GET /api/v1/traces/series # not yet wrapped
GET /api/v1/traces/requests/{request_id} # not yet wrapped
GET /api/v1/traces/{trace_id} # not yet wrapped
GET /api/v1/organizations/me/traces # not yet wrapped
GET /api/v1/organizations/me/traces/count # not yet wrapped
GET /api/v1/organizations/me/traces/series # not yet wrapped
GET /api/v1/organizations/me/traces/requests/{request_id} # not yet wrapped
GET /api/v1/organizations/me/traces/{trace_id} # not yet wrapped
# Other control-plane extensions of already-covered resources
GET /api/v1/usage/count # not yet wrapped
GET /api/v1/usage/requests/{request_id} # not yet wrapped
POST /api/v1/keys/{key_id}/rotate # not yet wrapped
GET /api/v1/budgets/{budget_id}/reset-logs # not yet wrapped
PUT /api/v1/budgets/{budget_id} # not yet wrapped
GET /api/v1/keys/{key_id}/end-users # not yet wrapped
PUT /api/v1/keys/{key_id}/end-users # not yet wrapped
PATCH /api/v1/keys/{key_id}/end-users # not yet wrapped
GET /api/v1/keys/{key_id}/end-users/{external_id} # not yet wrapped
PUT /api/v1/keys/{key_id}/end-users/{external_id} # not yet wrapped
PATCH /api/v1/keys/{key_id}/end-users/{external_id} # not yet wrapped
# A service key managing its own end users, authenticated with that key
GET /api/v1/end-users # not yet wrapped
PUT /api/v1/end-users # not yet wrapped
PATCH /api/v1/end-users # not yet wrapped
GET /api/v1/end-users/{external_id} # not yet wrapped
PUT /api/v1/end-users/{external_id} # not yet wrapped
PATCH /api/v1/end-users/{external_id} # not yet wrapped
GET /api/v1/end-user-budgets # not yet wrapped

# --- Second wave of gateway endpoints (added after the initial manifest) ---
# Dashboard session auth: browser cookie flow for the admin UI, not an SDK surface.
Expand All @@ -180,9 +193,10 @@ DELETE /api/v1/auth/session # dashboard-only
# flow. An SDK authenticates with the master key or an API key and never holds
# a password, so there is nothing here for one to wrap.
PUT /api/v1/auth/password # dashboard-only
# The name the signed-in identity goes by: the account page's own write, beside
# Who the signed-in identity is, and the name it goes by: the account page's own read and write, beside
# the credential ones. An SDK authenticates as a key rather than as a person and
# has no account page to render, so there is nothing here for one to wrap.
GET /api/v1/auth/profile # dashboard-only
PATCH /api/v1/auth/profile # dashboard-only
# A signed-in person's message to the Otari team, sent from the top bar (the
# account menu on a phone).
Expand All @@ -196,6 +210,8 @@ POST /api/v1/auth/verify-email # dashboard-only
POST /api/v1/auth/resend-verification # dashboard-only
POST /api/v1/auth/password/reset # dashboard-only
POST /api/v1/auth/password/reset/confirm # dashboard-only
POST /api/v1/auth/password/reset/validate # dashboard-only
POST /api/v1/auth/verify-email/validate # dashboard-only
# Passkeys (otari#652): both ceremonies need a WebAuthn authenticator, which is
# a browser API. An SDK cannot produce an attestation or an assertion, so there
# is nothing here for one to wrap, including the credential list: it exists to
Expand Down Expand Up @@ -292,6 +308,7 @@ DELETE /api/v1/scoped-budgets/{budget_id} # not yet wrappe
GET /api/v1/admin/access # dashboard-only
GET /api/v1/admin/users # dashboard-only
PATCH /api/v1/admin/users/{user_id} # dashboard-only
POST /api/v1/admin/users/{user_id}/password-link # dashboard-only
# Tenancy: organizations, workspaces, and their memberships. The dashboard's
# tenancy pages are the consumer; an SDK caller acts inside one workspace with a
# key that already names it, so none of these is an SDK surface yet. Move to
Expand Down Expand Up @@ -378,6 +395,7 @@ POST /api/v1/organizations/me/guardrail-definitions/{definition_id}/test # dash
POST /api/v1/organizations/me/member-invitations # dashboard-only
POST /api/v1/organizations/me/member-invitations/bulk # dashboard-only
DELETE /api/v1/organizations/me/member-invitations/{invitation_id} # dashboard-only
POST /api/v1/organizations/me/member-invitations/{invitation_id}/reissue # dashboard-only
# The invitee's side of the same flow, and dashboard-only for the same reason
# the admin's side above is: it acts as a signed-in person deciding about their
# own membership, not as a key-holder calling the gateway.
Expand Down
14 changes: 14 additions & 0 deletions src/otari/_client/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
"ChatApi",
"DecisionsApi",
"EmbeddingsApi",
"EndUsersApi",
"FeedbackApi",
"FilesApi",
"HealthApi",
Expand Down Expand Up @@ -270,6 +271,7 @@
"EmbeddingRequest",
"EmbeddingResponse",
"EmbeddingUsage",
"EndUserBudgetPublic",
"EndUserPublic",
"EndUserPut",
"EndUserUpdate",
Expand Down Expand Up @@ -454,6 +456,9 @@
"MSGImageURL",
"MSGInputAudio",
"MailSettings",
"MailedLinkRequest",
"MailedLinkStatus",
"MailedLinkStatusResponse",
"MaintenanceMode",
"ManagedTool",
"McpErrorBody",
Expand Down Expand Up @@ -529,13 +534,15 @@
"OrganizationModelPricingUpdate",
"OrganizationModelPricingsPublic",
"OrganizationPublic",
"OrganizationRefusal",
"OrganizationScopedBudgetCreate",
"OrganizationScopedBudgetPublic",
"OrganizationScopedBudgetUpdate",
"OrganizationScopedBudgetsPublic",
"OutputShape",
"OverviewSummaryResponse",
"PasskeySessionResponse",
"PasswordLinkPublic",
"PasswordResponse",
"PendingOrganizationInvitationPublic",
"PendingOrganizationInvitationsPublic",
Expand Down Expand Up @@ -753,6 +760,7 @@
from otari._client.api.chat_api import ChatApi as ChatApi
from otari._client.api.decisions_api import DecisionsApi as DecisionsApi
from otari._client.api.embeddings_api import EmbeddingsApi as EmbeddingsApi
from otari._client.api.end_users_api import EndUsersApi as EndUsersApi
from otari._client.api.feedback_api import FeedbackApi as FeedbackApi
from otari._client.api.files_api import FilesApi as FilesApi
from otari._client.api.health_api import HealthApi as HealthApi
Expand Down Expand Up @@ -997,6 +1005,7 @@
from otari._client.models.embedding_request import EmbeddingRequest as EmbeddingRequest
from otari._client.models.embedding_response import EmbeddingResponse as EmbeddingResponse
from otari._client.models.embedding_usage import EmbeddingUsage as EmbeddingUsage
from otari._client.models.end_user_budget_public import EndUserBudgetPublic as EndUserBudgetPublic
from otari._client.models.end_user_public import EndUserPublic as EndUserPublic
from otari._client.models.end_user_put import EndUserPut as EndUserPut
from otari._client.models.end_user_update import EndUserUpdate as EndUserUpdate
Expand Down Expand Up @@ -1181,6 +1190,9 @@
from otari._client.models.msg_image_url import MSGImageURL as MSGImageURL
from otari._client.models.msg_input_audio import MSGInputAudio as MSGInputAudio
from otari._client.models.mail_settings import MailSettings as MailSettings
from otari._client.models.mailed_link_request import MailedLinkRequest as MailedLinkRequest
from otari._client.models.mailed_link_status import MailedLinkStatus as MailedLinkStatus
from otari._client.models.mailed_link_status_response import MailedLinkStatusResponse as MailedLinkStatusResponse
from otari._client.models.maintenance_mode import MaintenanceMode as MaintenanceMode
from otari._client.models.managed_tool import ManagedTool as ManagedTool
from otari._client.models.mcp_error_body import McpErrorBody as McpErrorBody
Expand Down Expand Up @@ -1256,13 +1268,15 @@
from otari._client.models.organization_model_pricing_update import OrganizationModelPricingUpdate as OrganizationModelPricingUpdate
from otari._client.models.organization_model_pricings_public import OrganizationModelPricingsPublic as OrganizationModelPricingsPublic
from otari._client.models.organization_public import OrganizationPublic as OrganizationPublic
from otari._client.models.organization_refusal import OrganizationRefusal as OrganizationRefusal
from otari._client.models.organization_scoped_budget_create import OrganizationScopedBudgetCreate as OrganizationScopedBudgetCreate
from otari._client.models.organization_scoped_budget_public import OrganizationScopedBudgetPublic as OrganizationScopedBudgetPublic
from otari._client.models.organization_scoped_budget_update import OrganizationScopedBudgetUpdate as OrganizationScopedBudgetUpdate
from otari._client.models.organization_scoped_budgets_public import OrganizationScopedBudgetsPublic as OrganizationScopedBudgetsPublic
from otari._client.models.output_shape import OutputShape as OutputShape
from otari._client.models.overview_summary_response import OverviewSummaryResponse as OverviewSummaryResponse
from otari._client.models.passkey_session_response import PasskeySessionResponse as PasskeySessionResponse
from otari._client.models.password_link_public import PasswordLinkPublic as PasswordLinkPublic
from otari._client.models.password_response import PasswordResponse as PasswordResponse
from otari._client.models.pending_organization_invitation_public import PendingOrganizationInvitationPublic as PendingOrganizationInvitationPublic
from otari._client.models.pending_organization_invitations_public import PendingOrganizationInvitationsPublic as PendingOrganizationInvitationsPublic
Expand Down
1 change: 1 addition & 0 deletions src/otari/_client/api/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
from otari._client.api.chat_api import ChatApi
from otari._client.api.decisions_api import DecisionsApi
from otari._client.api.embeddings_api import EmbeddingsApi
from otari._client.api.end_users_api import EndUsersApi
from otari._client.api.feedback_api import FeedbackApi
from otari._client.api.files_api import FilesApi
from otari._client.api.health_api import HealthApi
Expand Down
Loading
Loading