/*
 * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
 *
 * Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
 * Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

package io.entgra.device.mgt.core.apimgt.application.extension.api.util;

import org.codehaus.jackson.annotate.JsonIgnoreProperties;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.ArrayList;

/**
 * DTO class to be used when registering an ApiM application.
 */
@XmlRootElement

@JsonIgnoreProperties(ignoreUnknown = true)
public class RegistrationProfile {
    @XmlElement(required = true)
    private String applicationName;
    @XmlElement
    private String username;
    @XmlElement
    private String password;
    @XmlElement(required = true)
    private String tags[];
    @XmlElement(required = true)
    private boolean isAllowedToAllDomains;
    @XmlElement(required = false)
    private String validityPeriod;

    private String callbackUrl;

    private ArrayList<String> supportedGrantTypes;

    public String getApplicationName() {
        return applicationName;
    }

    public void setApiApplicationName(String apiApplicationName) {
        this.applicationName = apiApplicationName;
    }

    public String[] getTags() {
        return tags;
    }

    public void setTags(String[] tags) {
        this.tags = tags;
    }

    public boolean isAllowedToAllDomains() {
        return isAllowedToAllDomains;
    }

    public void setIsAllowedToAllDomains(boolean isAllowedToAllDomains) {
        this.isAllowedToAllDomains = isAllowedToAllDomains;
    }

    public String getValidityPeriod() {
        return validityPeriod;
    }

    public void setValidityPeriod(String validityPeriod) {
        this.validityPeriod = validityPeriod;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getCallbackUrl() {
        return callbackUrl;
    }

    public void setCallbackUrl(String callbackUrl) {
        this.callbackUrl = callbackUrl;
    }

    public ArrayList<String> getSupportedGrantTypes() {
        return supportedGrantTypes;
    }

    public void setSupportedGrantTypes(ArrayList<String> supportedGrantTypes) {
        this.supportedGrantTypes = supportedGrantTypes;
    }
}
