package com.l7tech.gateway.api;

import com.l7tech.gateway.api.impl.AccessorSupport;
import com.l7tech.gateway.api.impl.ElementExtendableAccessibleObject;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlElementWrapper;
import jakarta.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.XmlType;
import java.util.ArrayList;
import java.util.List;

@XmlRootElement(name = "Role")
@XmlType(
   name = "RbacRoleType",
   propOrder = {"name", "description", "userCreated", "permissions", "assignments", "extension", "extensions", "entityType", "entityID"}
)
@AccessorSupport.AccessibleResource(name = "roles")
public class RbacRoleMO extends ElementExtendableAccessibleObject {
   private String h;
   private String i;
   private boolean j = true;
   private String k;
   private String l;
   private List<RbacRolePermissionMO> m = new ArrayList<>();
   private List<RbacRoleAssignmentMO> n = new ArrayList<>();

   protected RbacRoleMO() {
   }

   @XmlElement(name = "name", required = true)
   public String getName() {
      return this.h;
   }

   public void setName(String var1) {
      this.h = var1;
   }

   @XmlElement(name = "description")
   public String getDescription() {
      return this.i;
   }

   public void setDescription(String var1) {
      this.i = var1;
   }

   @XmlElement(name = "userCreated")
   public boolean isUserCreated() {
      return this.j;
   }

   public void setUserCreated(boolean var1) {
      this.j = var1;
   }

   @XmlElementWrapper(name = "permissions", required = false)
   @XmlElement(name = "permission", required = false)
   public List<RbacRolePermissionMO> getPermissions() {
      return this.m;
   }

   public void setPermissions(List<RbacRolePermissionMO> var1) {
      this.m = var1;
   }

   @XmlElementWrapper(name = "assignments", required = false)
   @XmlElement(name = "assignment", required = false)
   public List<RbacRoleAssignmentMO> getAssignments() {
      return this.n;
   }

   public void setAssignments(List<RbacRoleAssignmentMO> var1) {
      this.n = var1;
   }

   @XmlElement(name = "entityType", required = false)
   public String getEntityType() {
      return this.k;
   }

   public void setEntityType(String var1) {
      this.k = var1;
   }

   @XmlElement(name = "entityID", required = false)
   public String getEntityID() {
      return this.l;
   }

   public void setEntityID(String var1) {
      this.l = var1;
   }
}
