package riomhaire.lti.core.model.configuration;


import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;

import java.util.List;

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class ClientConfiguration {
    String id;            // Hash of issuer and clientid
    String name;          // Name of the tool installation
    String issuer;        // WHo issued the request - usually the LMS
    String clientId;      // Tool Client ID
    String jwksUrl;       // Where the public key for the issuer can be found
    String authenticateUrl;  // The call back authentication url
    boolean skipVerification;          // If true then skip token verification
    List<String> deployments; // List of specific deployments of this client

    /**
     * Default constructor
     */
    public ClientConfiguration() {
    }

    /**
     * @return
     */
    public String getId() {
        return id;
    }

    /**
     *
     * @param id
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     *
     * @return
     */
    public String getName() {
        return name;
    }

    /**
     *
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     *
     * @return
     */
    public String getIssuer() {
        return issuer;
    }

    /**
     *
     * @param issuer
     */
    public void setIssuer(String issuer) {
        this.issuer = issuer;
    }

    /**
     *
     * @return
     */
    public String getClientId() {
        return clientId;
    }

    /**
     *
     * @param clientId
     */
    public void setClientId(String clientId) {
        this.clientId = clientId;
    }

    /**
     *
     * @return
     */
    public String getJwksUrl() {
        return jwksUrl;
    }

    /**
     *
     * @param jwksUrl
     */
    public void setJwksUrl(String jwksUrl) {
        this.jwksUrl = jwksUrl;
    }

    /**
     *
     * @return
     */
    public String getAuthenticateUrl() {
        return authenticateUrl;
    }

    /**
     *
     * @param authenticateUrl
     */
    public void setAuthenticateUrl(String authenticateUrl) {
        this.authenticateUrl = authenticateUrl;
    }

    /**
     *
     * @return
     */
    public boolean isSkipVerification() {
        return skipVerification;
    }

    /**
     *
     * @param skipVerification
     */
    public void setSkipVerification(boolean skipVerification) {
        this.skipVerification = skipVerification;
    }

    /**
     *
     * @return
     */
    public List<String> getDeployments() {
        return deployments;
    }

    /**
     * 
     * @param deployments
     */
    public void setDeployments(List<String> deployments) {
        this.deployments = deployments;
    }
}
