/** * ============LICENSE_START==================================================== * org.onap.aaf * =========================================================================== * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. * =========================================================================== * Licensed 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. * ============LICENSE_END==================================================== * */ package org.onap.aaf.auth.service.mapper; import java.util.Collection; import java.util.List; import org.onap.aaf.auth.dao.Bytification; import org.onap.aaf.auth.dao.cass.ApprovalDAO; import org.onap.aaf.auth.dao.cass.CertDAO; import org.onap.aaf.auth.dao.cass.CredDAO; import org.onap.aaf.auth.dao.cass.DelegateDAO; import org.onap.aaf.auth.dao.cass.FutureDAO; import org.onap.aaf.auth.dao.cass.HistoryDAO; import org.onap.aaf.auth.dao.cass.Namespace; import org.onap.aaf.auth.dao.cass.PermDAO; import org.onap.aaf.auth.dao.cass.RoleDAO; import org.onap.aaf.auth.dao.cass.UserRoleDAO; import org.onap.aaf.auth.env.AuthzTrans; import org.onap.aaf.auth.layer.Result; import org.onap.aaf.auth.service.MayChange; import org.onap.aaf.misc.rosetta.Marshal; public interface Mapper< NSS, PERMS, PERMKEY, ROLES, USERS, USERROLES, DELGS, CERTS, KEYS, REQUEST, HISTORY, ERROR, APPROVALS> { enum API{NSS,NS_REQ, PERMS,PERM_KEY,PERM_REQ, ROLES,ROLE,ROLE_REQ,ROLE_PERM_REQ, USERS,USER_ROLE_REQ,USER_ROLES, CRED_REQ,CERTS, APPROVALS, DELGS,DELG_REQ, KEYS, HISTORY, ERROR, API, VOID}; public Class getClass(API api); public Marshal getMarshal(API api); public A newInstance(API api); public Result permkey(AuthzTrans trans, PERMKEY from); public Result perm(AuthzTrans trans, REQUEST from); public Result role(AuthzTrans trans, REQUEST from); public Result ns(AuthzTrans trans, REQUEST from); public Result cred(AuthzTrans trans, REQUEST from, boolean requiresPass); public Result cred(List lcred, USERS to); public Result cert(List lcert, CERTS to); public Result delegate(AuthzTrans trans, REQUEST from); public Result delegate(List lDelg); public Result approvals(List lAppr); public Result> approvals(APPROVALS apprs); public Result> perms(AuthzTrans trans, PERMS perms); public Result userRole(AuthzTrans trans, REQUEST from); public Result permFromRPRequest(AuthzTrans trans, REQUEST from); public REQUEST ungrantRequest(AuthzTrans trans, String role, String type, String instance, String action); public Result roleFromRPRequest(AuthzTrans trans, REQUEST from); /* * Check Requests of varying sorts for Future fields set */ public Result future(AuthzTrans trans, String table, REQUEST from, Bytification content, boolean enableApproval, Memo memo, MayChange mc); public Result nss(AuthzTrans trans, Namespace from, NSS to); // Note: Prevalidate if NS given is allowed to be seen before calling public Result nss(AuthzTrans trans, Collection from, NSS to); // public Result ns_attrib(AuthzTrans trans, Set from, NSS to); public Result perms(AuthzTrans trans, List from, PERMS to, boolean filter); public Result perms(AuthzTrans trans, List from, PERMS to, String[] scopes, boolean filter); public Result roles(AuthzTrans trans, List from, ROLES roles, boolean filter); // Note: Prevalidate if NS given is allowed to be seen before calling public Result users(AuthzTrans trans, Collection from, USERS to); public Result userRoles(AuthzTrans trans, Collection from, USERROLES to); public Result keys(Collection from); public Result history(AuthzTrans trans, List history, final int sort); public ERROR errorFromMessage(StringBuilder holder, String msgID, String text, String... detail); /* * A Memo Creator... Use to avoid creating superfluous Strings until needed. */ public static interface Memo { public String get(); } }