package com.airlock.iam.techclient.api.domain.model.oauth2;

import com.airlock.iam.oauth2.api.domain.model.AuthorizationServerId;
import com.airlock.iam.oauth2.api.domain.model.OAuth2ClientId;
import com.airlock.iam.oauth2.api.domain.model.OAuth2ClientSecret;
import com.airlock.iam.oauth2.api.domain.model.OAuth2Scope;
import java.net.URI;
import java.time.Instant;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Optional;
import java.util.Set;

public interface MutableOAuth2TechnicalClientMetadata extends OAuth2TechnicalClientMetadata {
   void setClientId(OAuth2ClientId var1);

   void setAuthorizationServerId(AuthorizationServerId var1);

   void setClientSecret(Optional<OAuth2ClientSecret> var1);

   void setClientName(Optional<String> var1);

   void setClientNameTranslations(Map<Locale, String> var1);

   void setClientIdIssuedAt(Optional<Instant> var1);

   void setRedirectUris(Set<URI> var1);

   void setTokenEndpointAuthMethod(Optional<String> var1);

   void setGrantTypes(List<String> var1);

   void setResponseTypes(List<String> var1);

   void setClientUri(Optional<URI> var1);

   void setClientUriTranslations(Map<Locale, URI> var1);

   void setLogoUri(Optional<URI> var1);

   void setLogoUriTranslations(Map<Locale, URI> var1);

   void setScopes(List<OAuth2Scope> var1);

   void setContacts(List<String> var1);

   void setTosUri(Optional<URI> var1);

   void setTosUriTranslations(Map<Locale, URI> var1);

   void setPolicyUri(Optional<URI> var1);

   void setPolicyUriTranslations(Map<Locale, URI> var1);

   void setJwksUri(Optional<URI> var1);

   void setSoftwareId(Optional<String> var1);

   void setSoftwareVersion(Optional<String> var1);

   void setMtlsCertificate(Optional<MtlsCertificate> var1);
}
