@if (state(); as data) {

{{ 'XP.ModelAccess.Title' | translate: { Default: 'Model access' } }}

{{ 'XP.ModelAccess.Description' | translate : { Default: 'Your available models combine direct access, plan access, and active personal grants in the tenant and current organization.' } }}

@if (requestableModels().length) { }
{{ 'XP.ModelAccess.AvailableModels' | translate: { Default: 'Available models' } }} @if (catalog()) { {{ availableModels().length }} } @if (catalogLoading()) {
} @else if (catalog()) { @if (availableModels().length) {
{{ 'XP.ModelGateway.SearchModels' | translate: { Default: 'Search models' } }}
@if (filteredAvailableModels().length) {
@for (item of filteredAvailableModels(); track item.key) {
{{ item.modelLabel ? (item.modelLabel | i18n) : item.model }}
{{ item.providerLabel ? (item.providerLabel | i18n) : item.provider }}
{{ item.modelType }}
{{ 'XP.ModelAccess.Source.' + item.accessSource | translate: { Default: item.accessSource ?? 'Plan included' } }} {{ 'XP.ModelAccess.Scope.' + item.ownershipScope | translate }}
@if (item.unavailableReason) {
{{ 'XP.ModelAccess.Unavailable.' + item.unavailableReason | translate }}
}
}
} @else { } } @else { } } @else if (catalogLoadFailed()) { }

{{ 'XP.ModelAccess.PersonalGrants' | translate: { Default: 'Personal grants' } }}

{{ grantModels().length }}
@if (grantModels().length) {
@for (item of grantModels(); track item.id) {
{{ item.modelSnapshot.modelLabel ? (item.modelSnapshot.modelLabel | i18n) : item.model }}
{{ item.modelSnapshot.providerLabel ? (item.modelSnapshot.providerLabel | i18n) : item.provider }}
{{ 'XP.ModelAccess.GrantStatus.active' | translate }}
{{ 'XP.ModelAccess.PersonalGrant' | translate: { Default: 'Personal grant' } }} {{ item.modelType }} · {{ 'XP.ModelAccess.Scope.' + item.ownershipScope | translate }}
@if (item.validUntil) { {{ 'XP.ModelAccess.ValidUntil' | translate: { date: formatValidUntil(item.validUntil) } }} } @else { {{ 'XP.ModelAccess.Permanent' | translate: { Default: 'No expiration' } }} }
@if (item.lastUnavailableReason) {
{{ 'XP.ModelAccess.Unavailable.' + item.lastUnavailableReason | translate }}
}
}
} @else { @if (requestableModels().length) {
} }

{{ 'XP.ModelAccess.MyRequests' | translate: { Default: 'My requests' } }}

{{ data.requests.length }}
@if (data.requests.length) {
@for (request of data.requests; track request.id) {
{{ request.modelSnapshot.modelLabel ? (request.modelSnapshot.modelLabel | i18n) : request.model }}

{{ request.reason }}

{{ 'XP.ModelAccess.StatusValue.' + currentRequestStatus(request) | translate }} @if (request.status === requestedStatus) { }
@if (request.events?.length) {
    @for (event of request.events; track event.id) {
  1. {{ 'XP.ModelAccess.Event.' + event.eventType | translate }}
    {{ event.createdAt | date: 'medium' }} · {{ event.actorType === 'system' ? ('XP.ModelAccess.SystemActor' | translate: { Default: 'System' }) : event.actorName }}
    @if (event.systemReasonCode) {
    {{ 'XP.ModelAccess.ClosedReason.' + event.systemReasonCode | translate }}
    } @else if (event.eventType === 'model_suspended' && event.reason) {
    {{ 'XP.ModelAccess.Unavailable.' + event.reason | translate }}
    } @else if (event.reason) {
    {{ event.reason }}
    }
  2. }
}
}
} @else { }
} @else if (state() === undefined) {
} @else { }