package com.l7tech.gateway.api;

import com.l7tech.gateway.api.impl.AccessorSupport;
import com.l7tech.gateway.api.impl.ManagedObjectReference;
import com.l7tech.gateway.api.impl.PropertiesMapType;
import jakarta.xml.bind.annotation.XmlAnyElement;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.XmlType;
import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.util.List;
import java.util.Map;

@XmlRootElement(name = "AuditConfiguration")
@XmlType(
   name = "AuditConfigurationType",
   propOrder = {"sinkPolicyReference", "lookupPolicyReference", "alwaysSaveInternal", "ftpConfig", "properties", "extensions"}
)
@AccessorSupport.AccessibleResource(name = "auditConfiguration")
public class AuditConfigurationMO extends ManagedObject {
   private ManagedObjectReference f;
   private ManagedObjectReference g;
   private Boolean h = true;
   private AuditFtpConfig i;
   private Map<String, Object> j;

   @XmlElement(name = "SinkPolicyReference", required = false)
   public ManagedObjectReference getSinkPolicyReference() {
      return this.f;
   }

   public void setSinkPolicyReference(ManagedObjectReference var1) {
      this.f = var1;
   }

   @XmlElement(name = "LookupPolicyReference", required = false)
   public ManagedObjectReference getLookupPolicyReference() {
      return this.g;
   }

   public void setLookupPolicyReference(ManagedObjectReference var1) {
      this.g = var1;
   }

   @XmlElement(name = "AlwaysSaveInternal", required = false)
   public Boolean getAlwaysSaveInternal() {
      return this.h;
   }

   public void setAlwaysSaveInternal(Boolean var1) {
      this.h = var1;
   }

   @XmlElement(name = "FtpConfig", required = false)
   public AuditFtpConfig getFtpConfig() {
      return this.i;
   }

   public void setFtpConfig(AuditFtpConfig var1) {
      this.i = var1;
   }

   @XmlElement(name = "Properties", required = false)
   @XmlJavaTypeAdapter(PropertiesMapType.PropertiesMapTypeAdapter.class)
   public Map<String, Object> getProperties() {
      return this.j;
   }

   public void setProperties(Map<String, Object> var1) {
      this.j = var1;
   }

   @XmlAnyElement(lax = true)
   @Override
   protected List<Object> getExtensions() {
      return super.getExtensions();
   }

   AuditConfigurationMO() {
   }
}
