var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { JsonElementType, JsonObject, JsonProperty } from "ta-json";
import Link from "../link";
import Resource from "./resource";
let EntityPermissionPolicy = class EntityPermissionPolicy {
    constructor() {
        this.policyRuleIdentifiers = [];
    }
};
__decorate([
    JsonProperty("is_group_policy"),
    __metadata("design:type", Boolean)
], EntityPermissionPolicy.prototype, "isGroupPolicy", void 0);
__decorate([
    JsonProperty("policy"),
    __metadata("design:type", Link)
], EntityPermissionPolicy.prototype, "policy", void 0);
__decorate([
    JsonProperty("rule_identifiers"),
    JsonElementType(String),
    __metadata("design:type", Array)
], EntityPermissionPolicy.prototype, "policyRuleIdentifiers", void 0);
EntityPermissionPolicy = __decorate([
    JsonObject()
], EntityPermissionPolicy);
export { EntityPermissionPolicy };
let EntityPermission = class EntityPermission {
    constructor() {
        this.policies = [];
    }
};
__decorate([
    JsonProperty("permission"),
    __metadata("design:type", String)
], EntityPermission.prototype, "permission", void 0);
__decorate([
    JsonProperty("policies"),
    JsonElementType(EntityPermissionPolicy),
    __metadata("design:type", Array)
], EntityPermission.prototype, "policies", void 0);
EntityPermission = __decorate([
    JsonObject()
], EntityPermission);
export { EntityPermission };
let UserEntityPermissionsResource = class UserEntityPermissionsResource extends Resource {
};
__decorate([
    JsonProperty("permissions"),
    JsonElementType(EntityPermission),
    __metadata("design:type", Array)
], UserEntityPermissionsResource.prototype, "permissions", void 0);
UserEntityPermissionsResource = __decorate([
    JsonObject()
], UserEntityPermissionsResource);
export { UserEntityPermissionsResource };
//# sourceMappingURL=user-entity-permissions-resource.js.map