private Map<String, Map<String, Object>> locateTicketTypesSupported() {
        val catalog = applicationContext.getBean(TicketCatalog.BEAN_NAME, TicketCatalog.class);
        val ticketFactory = applicationContext.getBean(TicketFactory.BEAN_NAME, TicketFactory.class);

        return catalog
            .findAll()
            .stream()
            .collect(Collectors.toMap(TicketDefinition::getPrefix,
                value -> {
                    val details = new LinkedHashMap<String, Object>();
                    details.put("storageName", value.getProperties().getStorageName());
                    if (value.getProperties().getStorageTimeout() > 0) {
                        details.put("storageTimeout", value.getProperties().getStorageTimeout());
                    }
                    val ticket = ticketFactory.get(value.getApiClass());
                    val expirationPolicy = ticket.getExpirationPolicyBuilder().buildTicketExpirationPolicy();
                    details.put("name", expirationPolicy.getName());
                    details.put("timeToLive", expirationPolicy.getTimeToLive());
                    if (expirationPolicy instanceof final IdleExpirationPolicy iep) {
                        details.put("timeToIdle", iep.getTimeToIdle());
                    }
                    return details;
                }));
    }
This is {@link DefaultCasServerProfileRegistrar}.

@author Misagh Moayyed
@since 5.2.0
support/cas-server-support-discovery-profile-core/src/main/java/org/apereo/cas/discovery/DefaultCasServerProfileRegistrar.java