package com.airlock.iam.oauth2.domain.model.token;

import com.airlock.iam.common.api.domain.model.claims.Claim;
import com.airlock.iam.oauth2.api.domain.model.claims.OAuth2TokenClaimData;
import com.airlock.iam.oauth2.domain.model.acr.OpenIdConnectAcrValue;
import com.airlock.iam.oauth2.domain.model.oidc.OidcUserAgentSessionId;
import java.util.Date;
import java.util.List;
import java.util.Optional;

public interface OpenIdConnectIdTokenData extends OAuth2TokenClaimData {
   String getAssignedTokenUser();

   Date getExpiration();

   Date getUserAuthenticationDate();

   Optional<String> getNonce();

   Optional<OpenIdConnectAcrValue> getAcr();

   List<Claim<?>> getClaims();

   Optional<OidcUserAgentSessionId> getOidcUserAgentSessionId();
}
