/**
 * Copyright © 2012-2022 by Data Virtuality GmbH
 */
package org.teiid.adminapi.impl;

/**
 * @author Archil Gabeskiria
 * @date 2022.08.09
 */
public class OpenIDMetadata {
    private String configUrl;
    private String tokenEndpoint;
    private String introspectionEndpoint;
    private String userInfoEndpoint;
    private boolean introspectToken;
    private String accessToken;
    private String jwksEndpoint;
    private String refreshToken;
    private long tokenExpirationTime;
    private String clientId;
    private String clientSecret;
    private boolean useDvRoles;
    private String provider;
    private String serverUrl;
    private String realm;
    private String scope;
    private String audiences;
    private String issuer;
    private String rolesClaim;
    private String usernameClaim;
    private boolean publicClient;

    public String getConfigUrl() {
        return configUrl;
    }

    public void setConfigUrl(String configUrl) {
        this.configUrl = configUrl;
    }

    public String getTokenEndpoint() {
        return tokenEndpoint;
    }

    public void setTokenEndpoint(String tokenEndpoint) {
        this.tokenEndpoint = tokenEndpoint;
    }

    public String getIntrospectionEndpoint() {
        return introspectionEndpoint;
    }

    public void setIntrospectionEndpoint(String introspectionEndpoint) {
        this.introspectionEndpoint = introspectionEndpoint;
    }

    public String getUserInfoEndpoint() {
        return userInfoEndpoint;
    }

    public void setUserInfoEndpoint(String userInfoEndpoint) {
        this.userInfoEndpoint = userInfoEndpoint;
    }

    public boolean isIntrospectToken() {
        return introspectToken;
    }

    public void setIntrospectToken(boolean introspectToken) {
        this.introspectToken = introspectToken;
    }

    public String getAccessToken() {
        return accessToken;
    }

    public void setAccessToken(String accessToken) {
        this.accessToken = accessToken;
    }

    public String getJwksEndpoint() {
        return jwksEndpoint;
    }

    public void setJwksEndpoint(String jwksEndpoint) {
        this.jwksEndpoint = jwksEndpoint;
    }

    public String getRefreshToken() {
        return refreshToken;
    }

    public void setRefreshToken(String refreshToken) {
        this.refreshToken = refreshToken;
    }

    public long getTokenExpirationTime() {
        return tokenExpirationTime;
    }

    public void setTokenExpirationTime(long tokenExpirationTime) {
        this.tokenExpirationTime = tokenExpirationTime;
    }

    public String getClientId() {
        return clientId;
    }

    public void setClientId(String clientId) {
        this.clientId = clientId;
    }

    public String getClientSecret() {
        return clientSecret;
    }

    public void setClientSecret(String clientSecret) {
        this.clientSecret = clientSecret;
    }

    public boolean isUseDvRoles() {
        return useDvRoles;
    }

    public void setUseDvRoles(boolean useDvRoles) {
        this.useDvRoles = useDvRoles;
    }

    public String getProvider() {
        return provider;
    }

    public void setProvider(String provider) {
        this.provider = provider;
    }

    public String getServerUrl() {
        return serverUrl;
    }

    public void setServerUrl(String serverUrl) {
        this.serverUrl = serverUrl;
    }

    public String getRealm() {
        return realm;
    }

    public void setRealm(String realm) {
        this.realm = realm;
    }

    public String getScope() {
        return scope;
    }

    public void setScope(String scope) {
        this.scope = scope;
    }

    public String getAudiences() {
        return audiences;
    }

    public void setAudiences(String audiences) {
        this.audiences = audiences;
    }

    public String getIssuer() {
        return issuer;
    }

    public void setIssuer(String issuer) {
        this.issuer = issuer;
    }

    public String getRolesClaim() {
        return rolesClaim;
    }

    public void setRolesClaim(String rolesClaim) {
        this.rolesClaim = rolesClaim;
    }

    public String getUsernameClaim() {
        return usernameClaim;
    }

    public void setUsernameClaim(String usernameClaim) {
        this.usernameClaim = usernameClaim;
    }

    public boolean isPublicClient() {
        return publicClient;
    }

    public void setPublicClient(boolean publicClient) {
        this.publicClient = publicClient;
    }

    public OpenIDMetadata copyTo(OpenIDMetadata openIDMetadata) {
        openIDMetadata.setConfigUrl(configUrl);
        openIDMetadata.setTokenEndpoint(tokenEndpoint);
        openIDMetadata.setIntrospectionEndpoint(introspectionEndpoint);
        openIDMetadata.setUserInfoEndpoint(userInfoEndpoint);
        openIDMetadata.setIntrospectToken(introspectToken);
        openIDMetadata.setAccessToken(accessToken);
        openIDMetadata.setJwksEndpoint(jwksEndpoint);
        openIDMetadata.setRefreshToken(refreshToken);
        openIDMetadata.setTokenExpirationTime(tokenExpirationTime);
        openIDMetadata.setClientId(clientId);
        openIDMetadata.setClientSecret(clientSecret);
        openIDMetadata.setUseDvRoles(useDvRoles);
        openIDMetadata.setProvider(provider);
        openIDMetadata.setServerUrl(serverUrl);
        openIDMetadata.setRealm(realm);
        openIDMetadata.setScope(scope);
        openIDMetadata.setAudiences(audiences);
        openIDMetadata.setIssuer(issuer);
        openIDMetadata.setRolesClaim(rolesClaim);
        openIDMetadata.setUsernameClaim(usernameClaim);
        openIDMetadata.setPublicClient(publicClient);
        return openIDMetadata;
    }
}