package com.l7tech.gateway.api;

import com.l7tech.gateway.api.impl.AccessorSupport;
import com.l7tech.gateway.api.impl.ElementExtendableAccessibleObject;
import jakarta.xml.bind.annotation.XmlAttribute;
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.List;

@XmlRootElement(name = "Policy")
@XmlType(name = "PolicyType", propOrder = {"policyDetail", "resourceSets", "extension", "extensions"})
@AccessorSupport.AccessibleResource(name = "policies", accessorClassname = "com.l7tech.gateway.api.impl.PolicyMOAccessorImpl")
public class PolicyMO extends ElementExtendableAccessibleObject {
   private String h;
   private PolicyDetail i;
   private List<ResourceSet> j;

   @Override
   public Integer getVersion() {
      Integer var1 = null;
      if (this.i != null) {
         var1 = this.i.getVersion();
      }

      return var1;
   }

   @Override
   public void setVersion(Integer var1) {
      if (this.i != null) {
         this.i.setVersion(var1);
      }
   }

   @XmlAttribute(name = "guid")
   public String getGuid() {
      return this.h;
   }

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

   @XmlElement(name = "PolicyDetail", required = true)
   public PolicyDetail getPolicyDetail() {
      return this.i;
   }

   public void setPolicyDetail(PolicyDetail var1) {
      this.i = var1;
   }

   @XmlElementWrapper(name = "Resources", required = true)
   @XmlElement(name = "ResourceSet", required = true)
   public List<ResourceSet> getResourceSets() {
      return this.j;
   }

   public void setResourceSets(List<ResourceSet> var1) {
      this.j = var1;
   }

   PolicyMO() {
   }
}
