/**
 * Copyright (c) 2020-present, Goldman Sachs
 *
 * 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.
 */
import { hashArray, } from '@finos/legend-shared';
import { AppDirLevel } from '../../../../../../graph/metamodel/pure/packageableElements/ingest/IngestDefinition.js';
import { CORE_HASH_STRUCTURE } from '../../../../../../graph/Core_HashUtils.js';
export { AppDirLevel as V1_AppDirLevel };
// ---------------------------------------- Users & App Directory --------------------------------------
export class V1_User {
    name;
    userType;
}
export var V1_UserType;
(function (V1_UserType) {
    V1_UserType["WORKFORCE_USER"] = "WORKFORCE_USER";
    V1_UserType["SYSTEM_ACCOUNT"] = "SYSTEM_ACCOUNT";
})(V1_UserType || (V1_UserType = {}));
export class V1_AppDirNode {
    appDirId;
    level;
    get hashCode() {
        return hashArray([
            CORE_HASH_STRUCTURE.APP_DIR_NODE,
            this.appDirId.toString(),
            this.level,
        ]);
    }
}
// -------------------------------------------- Pagination ---------------------------------------------
export class V1_PaginationMetadataRecord {
    hasNextPage;
    lastValuesMap;
    size;
}
// ---------------------------------------- Organizational Scopes --------------------------------------
export class V1_OrganizationalScope {
}
export class V1_AppDirOrganizationalScope extends V1_OrganizationalScope {
    appDirNode;
}
export class V1_AdhocTeam extends V1_OrganizationalScope {
    users = [];
}
export class V1_ProducerScope extends V1_OrganizationalScope {
    did;
}
export class V1_UnknownOrganizationalScopeType extends V1_OrganizationalScope {
    content;
}
// -------------------------------- Entitlements Data Products & Access Points --------------------------
export class V1_EntitlementsAccessPoint {
    name;
    groups = [];
}
export class V1_AccessPointGroupStereotypeMapping {
    accessPointGroup;
    stereotypes = [];
}
export class V1_EntitlementsDataProduct {
    name;
    accessPoints = [];
    accessPointGroupStereotypeMappings = [];
    owner;
}
// ------------------------------------ Logical Entitlements (RBAC) -------------------------------------
export class V1_LogicalEntitlements {
    roleUniverse = [];
    roleMemberships = [];
    privileges = [];
}
export class V1_Role {
    name;
}
export class V1_RoleMembership {
    user;
    role;
}
export class V1_Privilege {
    subject;
    action;
    resource;
}
export var V1_Action;
(function (V1_Action) {
    V1_Action[V1_Action["READ"] = 0] = "READ";
})(V1_Action || (V1_Action = {}));
// ------------------------------------- Consumer Entitlement Resources --------------------------------
export class V1_Resource {
}
export class V1_ConsumerEntitlementResource extends V1_Resource {
}
export class V1_AccessPointGroupReference extends V1_ConsumerEntitlementResource {
    dataProduct;
    accessPointGroup;
}
export class V1_DataBundle extends V1_ConsumerEntitlementResource {
    content;
}
// -------------------------------------- Contract User Membership -------------------------------------
export class V1_ContractUserMembership {
    guid;
    user;
    status;
}
export var V1_UserApprovalStatus;
(function (V1_UserApprovalStatus) {
    V1_UserApprovalStatus["PENDING"] = "PENDING";
    V1_UserApprovalStatus["APPROVED"] = "APPROVED";
    V1_UserApprovalStatus["DENIED"] = "DENIED";
    V1_UserApprovalStatus["REVOKED"] = "REVOKED";
    V1_UserApprovalStatus["CLOSED"] = "CLOSED";
})(V1_UserApprovalStatus || (V1_UserApprovalStatus = {}));
//# sourceMappingURL=V1_CoreEntitlements.js.map