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

import com.airlock.iam.base.api.domain.model.Entity;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.time.Instant;
import lombok.NonNull;

public record OAuth2AcceptedClientAssertion(@NonNull OAuth2AcceptedClientAssertionId id, @NonNull Instant expiresAt)
   implements Entity<OAuth2AcceptedClientAssertion> {
   @SuppressFBWarnings(justification = "generated code")
   public OAuth2AcceptedClientAssertion {
      if (id == null) {
         throw new NullPointerException("id is marked non-null but is null");
      }

      if (expiresAt == null) {
         throw new NullPointerException("expiresAt is marked non-null but is null");
      }
   }

   @NonNull
   @SuppressFBWarnings(justification = "generated code")
   public OAuth2AcceptedClientAssertionId getId() {
      return this.id;
   }

   @NonNull
   @SuppressFBWarnings(justification = "generated code")
   public Instant getExpiresAt() {
      return this.expiresAt;
   }
}
