package com.l7tech.gateway.api;

import com.l7tech.gateway.api.impl.AccessorSupport;
import com.l7tech.gateway.api.impl.ElementExtendableAccessibleObject;
import com.l7tech.gateway.api.impl.PropertiesMapType;
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.XmlTransient;
import jakarta.xml.bind.annotation.XmlType;
import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.util.List;
import java.util.Map;

@XmlRootElement(name = "PrivateKey")
@XmlType(name = "PrivateKeyType", propOrder = {"certificateChain", "properties", "extension", "extensions"})
@AccessorSupport.AccessibleResource(name = "privateKeys", accessorClassname = "com.l7tech.gateway.api.impl.PrivateKeyMOAccessorImpl")
public class PrivateKeyMO extends ElementExtendableAccessibleObject {
   private String h;
   private String i;
   private List<CertificateData> j;
   private Map<String, Object> k;
   @XmlTransient
   private boolean l;

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

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

   @XmlAttribute(name = "alias", required = true)
   public String getAlias() {
      return this.i;
   }

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

   @XmlElementWrapper(name = "CertificateChain", required = true)
   @XmlElement(name = "CertificateData", required = true)
   public List<CertificateData> getCertificateChain() {
      return this.j;
   }

   public void setCertificateChain(List<CertificateData> var1) {
      this.j = var1;
   }

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

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

   public boolean isReplaceAllMatchingCertChain() {
      return this.l;
   }

   public void setReplaceAllMatchingCertChain(boolean var1) {
      this.l = var1;
   }

   PrivateKeyMO() {
   }
}
