cmind/modelmanager/v1/model_alias_service.proto
Package: cmind.modelmanager.v1
Enums
ModelAliasTargetKind
ModelAliasTargetKind enumerates the resource kinds a ModelAlias may target. Aliases may only point at direct invokable targets — chains of aliases are forbidden in v1.
| Value | Number | Description |
|---|---|---|
MODEL_ALIAS_TARGET_KIND_UNSPECIFIED | 0 | |
MODEL_ALIAS_TARGET_KIND_MODEL_DEPLOYMENT | 1 | |
MODEL_ALIAS_TARGET_KIND_EXTERNAL_MODEL | 2 |
Messages
ModelAliasTargetRef
| Field | Type | Number | Description |
|---|---|---|---|
kind | ModelAliasTargetKind | 1 | |
name | string | 2 |
ModelAlias
ModelAlias is the spec body for an alias. The Kubernetes admin handle is server-generated and carried as a separate name field on requests and responses — it isn't part of this message.
| Field | Type | Number | Description |
|---|---|---|---|
publicModelId | string | 1 | public_model_id is the client-facing identifier clients send in the OpenAI model field. Required, immutable, unique across ModelDeployment + ExternalModel + ModelAlias within the shared namespace. Validation mirrors the operator CRD: alnum start/end, 2–128 chars, internal chars [A-Za-z0-9._/-]. |
displayName | string | 2 | display_name is the human-facing label rendered in pickers and admin UIs. Mutable; not required to be unique. |
targetRef | ModelAliasTargetRef | 3 | target_ref points at the direct invokable (ModelDeployment or ExternalModel) that serves traffic for this alias. Mutable: changing it repoints the alias. Server-side authz requires can_admin on both the previous and the new target on update. |
unlisted | bool | 4 | unlisted hides the alias from public listings. Authz still applies — unlisting is a presentation choice, not an access control. |
sharing | Sharing | 5 | sharing controls which tenants may invoke and delegate this platform-owned alias. Tenant-owned aliases are reserved for future work. |
CreateModelAliasRequest
| Field | Type | Number | Description |
|---|---|---|---|
alias | ModelAlias | 1 |
CreateModelAliasResponse
| Field | Type | Number | Description |
|---|---|---|---|
name | string | 1 | name is the server-generated Kubernetes admin handle. |
alias | ModelAlias | 2 |
GetModelAliasRequest
| Field | Type | Number | Description |
|---|---|---|---|
name | string | 1 |
GetModelAliasResponse
| Field | Type | Number | Description |
|---|---|---|---|
name | string | 1 | |
alias | ModelAlias | 2 |
UpdateModelAliasRequest
| Field | Type | Number | Description |
|---|---|---|---|
name | string | 1 | |
alias | ModelAlias | 2 |
UpdateModelAliasResponse
| Field | Type | Number | Description |
|---|---|---|---|
name | string | 1 | |
alias | ModelAlias | 2 |
DeleteModelAliasRequest
| Field | Type | Number | Description |
|---|---|---|---|
name | string | 1 |
DeleteModelAliasResponse
ListModelAliasesRequest
ListModelAliasesResponse
| Field | Type | Number | Description |
|---|---|---|---|
aliases | repeated ListModelAliasesResponse.Item | 1 |
ListModelAliasesResponse.Item
| Field | Type | Number | Description |
|---|---|---|---|
name | string | 1 | |
alias | ModelAlias | 2 |
Services
ModelAliasService
ModelAliasService is the public CRUD surface for ModelAlias resources. Authz: alias invocation reaches the current target, but stable grants and listing checks name the alias. v1 aliases live in the shared api-services namespace and are platform-admin managed, so all CRUD RPCs are gated by can_manage_models. Create/Update/Delete additionally do server-side can_admin checks against the resolved target object so the gate stays correct when the FGA model gains finer-grained alias ownership.
CreateModelAlias
Request: CreateModelAliasRequest
Response: CreateModelAliasResponse
GetModelAlias
Request: GetModelAliasRequest
Response: GetModelAliasResponse
UpdateModelAlias
Request: UpdateModelAliasRequest
Response: UpdateModelAliasResponse
DeleteModelAlias
Request: DeleteModelAliasRequest
Response: DeleteModelAliasResponse
ListModelAliases
Handler filters per-item by can_invoke on the alias; gate here is just "logged in".
Request: ListModelAliasesRequest
Response: ListModelAliasesResponse