Skip to main content

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.

ValueNumberDescription
MODEL_ALIAS_TARGET_KIND_UNSPECIFIED0
MODEL_ALIAS_TARGET_KIND_MODEL_DEPLOYMENT1
MODEL_ALIAS_TARGET_KIND_EXTERNAL_MODEL2

Messages

ModelAliasTargetRef

FieldTypeNumberDescription
kindModelAliasTargetKind1
namestring2

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.

FieldTypeNumberDescription
publicModelIdstring1public_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._/-].
displayNamestring2display_name is the human-facing label rendered in pickers and admin UIs. Mutable; not required to be unique.
targetRefModelAliasTargetRef3target_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.
unlistedbool4unlisted hides the alias from public listings. Authz still applies — unlisting is a presentation choice, not an access control.
sharingSharing5sharing controls which tenants may invoke and delegate this platform-owned alias. Tenant-owned aliases are reserved for future work.

CreateModelAliasRequest

FieldTypeNumberDescription
aliasModelAlias1

CreateModelAliasResponse

FieldTypeNumberDescription
namestring1name is the server-generated Kubernetes admin handle.
aliasModelAlias2

GetModelAliasRequest

FieldTypeNumberDescription
namestring1

GetModelAliasResponse

FieldTypeNumberDescription
namestring1
aliasModelAlias2

UpdateModelAliasRequest

FieldTypeNumberDescription
namestring1
aliasModelAlias2

UpdateModelAliasResponse

FieldTypeNumberDescription
namestring1
aliasModelAlias2

DeleteModelAliasRequest

FieldTypeNumberDescription
namestring1

DeleteModelAliasResponse

ListModelAliasesRequest

ListModelAliasesResponse

FieldTypeNumberDescription
aliasesrepeated ListModelAliasesResponse.Item1

ListModelAliasesResponse.Item

FieldTypeNumberDescription
namestring1
aliasModelAlias2

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

POST /cmind.modelmanager.v1.ModelAliasService/CreateModelAlias

Request: CreateModelAliasRequest

Response: CreateModelAliasResponse

GetModelAlias

GET /cmind.modelmanager.v1.ModelAliasService/GetModelAlias

Request: GetModelAliasRequest

Response: GetModelAliasResponse

UpdateModelAlias

POST /cmind.modelmanager.v1.ModelAliasService/UpdateModelAlias

Request: UpdateModelAliasRequest

Response: UpdateModelAliasResponse

DeleteModelAlias

POST /cmind.modelmanager.v1.ModelAliasService/DeleteModelAlias

Request: DeleteModelAliasRequest

Response: DeleteModelAliasResponse

ListModelAliases

GET /cmind.modelmanager.v1.ModelAliasService/ListModelAliases

Handler filters per-item by can_invoke on the alias; gate here is just "logged in".

Request: ListModelAliasesRequest

Response: ListModelAliasesResponse