package org.wso2.carbon.is.migration.service.v700.constant;

public class MigratorConstants {

    public static final String ADMINISTRATOR = "Administrator";
    public static final String APPLICATION = "application";
    public static final String ORGANIZATION = "organization";
    public static final String CLIENT_CREDENTIALS = "client_credentials";
    public static final String AUDIENCE_FOR_ASSOCIATED_ROLES = "allowedAudienceForAssociatedRoles";
    public static final String IS_LEGACY_APP = "isLegacyApp";
    public static final String APP_PERMISSION_STRING_SCOPE_MAPPED_API =
            "application-permission-string-scope-mapped-api";
    public static final String SUBSCRIBE_ALL = "subscribeAllAPIs";
    public static final String MIGRATE_ROLE_CLAIM = "migrateRoleClaim";
    public static final String IMPLICIT = "implicit";
    public static final String GRANT_TYPE_ORGANIZATION_SWITCH = "organization_switch";
    public static final String GRANT_TYPE_ACCOUNT_SWITCH = "account_switch";
    public static final String VERSION_2 = "OAuth-2.0";
    public static final String INBOUND_AUTH2_TYPE = "oauth2";
    public static final String CONSOLE_APP = "Console";
    public static final String COOKIE_BASED_TOKEN_BINDER = "cookie";
    public static final String INBOUND_CONFIG_TYPE = "standardAPP";
    public static final String SHARE_WITH_ALL_CHILDREN = "shareWithAllChildren";
    public static final int SUPER_TENANT_ID = -1234;
    public static final String SUPER_TENANT_DOMAIN = "carbon.super";
    public static final String RESPONSE_TYPE_TOKEN = "token";
    public static final String RESPONSE_TYPE_ID_TOKEN = "id_token";
    public static final String EMAIL_CLAIM_URI = "http://wso2.org/claims/emailaddress";
    public static final String DISPLAY_NAME_CLAIM_URI = "http://wso2.org/claims/displayName";
    public static final String USERNAME_CLAIM_URI = "http://wso2.org/claims/username";
    public static final String PROFILE_CLAIM_URI = "http://wso2.org/claims/url";
    // Config Elements.
    public static final String CONFIG_ELEM_OAUTH = "OAuth";
    public static final String SUPPORTED_GRANT_TYPES = "SupportedGrantTypes";
    public static final String SUPPORTED_GRANT_TYPE = "SupportedGrantType";
    public static final String GRANT_TYPE_NAME = "GrantTypeName";
    public static final String SUPPORTED_RESP_TYPES = "SupportedResponseTypes";
    public static final String SUPPORTED_RESP_TYPE = "SupportedResponseType";
    public static final String RESP_TYPE_NAME = "ResponseTypeName";
    // Default validity periods.
    public static final String OPENID_CONNECT_IDTOKEN_EXPIRATION = "IDTokenExpiration";
    public static final String USER_ACCESS_TOKEN_DEFAULT_VALIDITY_PERIOD = "UserAccessTokenDefaultValidityPeriod";
    public static final String APPLICATION_ACCESS_TOKEN_VALIDATION_PERIOD = "AccessTokenDefaultValidityPeriod";
    public static final String REFRESH_TOKEN_VALIDITY_PERIOD = "RefreshTokenValidityPeriod";
    public static final String ADMIN_PERMISSION = "/permission/admin";

    public enum AppPortal {

        MY_ACCOUNT("My Account", "This is the my account application.", "MY_ACCOUNT", "/myaccount",
                "/myaccount/"),
        CONSOLE("Console", "This is the console application.", "CONSOLE", "/console",
                "/console/");

        private final String name;

        private final String description;

        private final String consumerKey;

        private final String path;

        private final String endpoint;

        AppPortal(String name, String description, String consumerKey, String path, String endpoint) {

            this.name = name;
            this.description = description;
            this.consumerKey = consumerKey;
            this.path = path;
            this.endpoint = endpoint;
        }

        public String getName() {

            return name;
        }

        public String getDescription() {

            return description;
        }

        public String getConsumerKey() {

            return consumerKey;
        }

        public String getPath() {

            return path;
        }

        public String getEndpoint() {

            return endpoint;
        }
    }
}
