// Path: src/main/java/org/killbill/billing/client/model/gen/PluginServiceInfo.java
// public class PluginServiceInfo {
// 
//     private String serviceTypeName = null;
// 
//     private String registrationName = null;
// 
// 
//     public PluginServiceInfo() {
//     }
// 
//     public PluginServiceInfo(final String serviceTypeName,
//                      final String registrationName) {
//         this.serviceTypeName = serviceTypeName;
//         this.registrationName = registrationName;
// 
//     }
// 
// 
//     public PluginServiceInfo setServiceTypeName(final String serviceTypeName) {
//         this.serviceTypeName = serviceTypeName;
//         return this;
//     }
// 
//     public String getServiceTypeName() {
//         return serviceTypeName;
//     }
// 
//     public PluginServiceInfo setRegistrationName(final String registrationName) {
//         this.registrationName = registrationName;
//         return this;
//     }
// 
//     public String getRegistrationName() {
//         return registrationName;
//     }
// 
//     @Override
//     public boolean equals(java.lang.Object o) {
//         if (this == o) {
//             return true;
//         }
//         if (o == null || getClass() != o.getClass()) {
//             return false;
//         }
//         PluginServiceInfo pluginServiceInfo = (PluginServiceInfo) o;
//         return Objects.equals(this.serviceTypeName, pluginServiceInfo.serviceTypeName) &&
//             Objects.equals(this.registrationName, pluginServiceInfo.registrationName);
//     }
// 
//     @Override
//     public int hashCode() {
//         return Objects.hash(serviceTypeName,
//             registrationName);
//     }
// 
//     @Override
//     public String toString() {
//         StringBuilder sb = new StringBuilder();
//         sb.append("class PluginServiceInfo {\n");
//         
//         sb.append("    serviceTypeName: ").append(toIndentedString(serviceTypeName)).append("\n");
//         sb.append("    registrationName: ").append(toIndentedString(registrationName)).append("\n");
//         sb.append("}");
//         return sb.toString();
//     }
// 
//     /**
//      * Convert the given object to string with each line indented by 4 spaces
//      * (except the first line).
//      */
//     private String toIndentedString(java.lang.Object o) {
//         if (o == null) {
//             return "null";
//         }
//         return o.toString().replace("\n", "\n    ");
//     }
// }
// 
// Path: src/main/java/org/killbill/billing/client/model/KillBillObject.java
// public abstract class KillBillObject {
// 
//     protected List<AuditLog> auditLogs;
// 
//     public KillBillObject() {
//         this(null);
//     }
// 
//     public KillBillObject(@Nullable final List<AuditLog> auditLogs) {
//         this.auditLogs = auditLogs;
//     }
// 
//     public List<AuditLog> getAuditLogs() {
//         return auditLogs;
//     }
// 
//     public void setAuditLogs(final List<AuditLog> auditLogs) {
//         this.auditLogs = auditLogs;
//     }
// 
//     @Override
//     public boolean equals(final Object o) {
//         if (this == o) {
//             return true;
//         }
//         if (!(o instanceof KillBillObject)) {
//             return false;
//         }
//         final KillBillObject that = (KillBillObject) o;
//         return Objects.equals(auditLogs, that.auditLogs);
//     }
// 
//     @Override
//     public int hashCode() {
//         return Objects.hash(auditLogs);
//     }
// }


import org.killbill.billing.client.model.KillBillObject;
import java.util.Objects;
import java.util.Arrays;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.ArrayList;
import java.util.List;
import org.killbill.billing.client.model.gen.PluginServiceInfo;
    }

    public String getVersion() {
        return version;
    }

    public PluginInfo setState(final String state) {
        this.state = state;
        return this;
    }

    public String getState() {
        return state;
    }

    public PluginInfo setIsSelectedForStart(final Boolean isSelectedForStart) {
        this.isSelectedForStart = isSelectedForStart;
        return this;
    }

    @JsonProperty(value="isSelectedForStart")
    public Boolean isSelectedForStart() {
        return isSelectedForStart;
    }

    public PluginInfo setServices(final List<PluginServiceInfo> services) {
        this.services = services;
        return this;
    }

// Path: src/main/java/org/killbill/billing/client/model/gen/PluginServiceInfo.java
// public class PluginServiceInfo {
// 
//     private String serviceTypeName = null;
// 
//     private String registrationName = null;
// 
// 
//     public PluginServiceInfo() {
//     }
// 
//     public PluginServiceInfo(final String serviceTypeName,
//                      final String registrationName) {
//         this.serviceTypeName = serviceTypeName;
//         this.registrationName = registrationName;
// 
//     }
// 
// 
//     public PluginServiceInfo setServiceTypeName(final String serviceTypeName) {
//         this.serviceTypeName = serviceTypeName;
//         return this;
//     }
// 
//     public String getServiceTypeName() {
//         return serviceTypeName;
//     }
// 
//     public PluginServiceInfo setRegistrationName(final String registrationName) {
//         this.registrationName = registrationName;
//         return this;
//     }
// 
//     public String getRegistrationName() {
//         return registrationName;
//     }
// 
//     @Override
//     public boolean equals(java.lang.Object o) {
//         if (this == o) {
//             return true;
//         }
//         if (o == null || getClass() != o.getClass()) {
//             return false;
//         }
//         PluginServiceInfo pluginServiceInfo = (PluginServiceInfo) o;
//         return Objects.equals(this.serviceTypeName, pluginServiceInfo.serviceTypeName) &&
//             Objects.equals(this.registrationName, pluginServiceInfo.registrationName);
//     }
// 
//     @Override
//     public int hashCode() {
//         return Objects.hash(serviceTypeName,
//             registrationName);
//     }
// 
//     @Override
//     public String toString() {
//         StringBuilder sb = new StringBuilder();
//         sb.append("class PluginServiceInfo {\n");
//         
//         sb.append("    serviceTypeName: ").append(toIndentedString(serviceTypeName)).append("\n");
//         sb.append("    registrationName: ").append(toIndentedString(registrationName)).append("\n");
//         sb.append("}");
//         return sb.toString();
//     }
// 
//     /**
//      * Convert the given object to string with each line indented by 4 spaces
//      * (except the first line).
//      */
//     private String toIndentedString(java.lang.Object o) {
//         if (o == null) {
//             return "null";
//         }
//         return o.toString().replace("\n", "\n    ");
//     }
// }
// 
// Path: src/main/java/org/killbill/billing/client/model/KillBillObject.java
// public abstract class KillBillObject {
// 
//     protected List<AuditLog> auditLogs;
// 
//     public KillBillObject() {
//         this(null);
//     }
// 
//     public KillBillObject(@Nullable final List<AuditLog> auditLogs) {
//         this.auditLogs = auditLogs;
//     }
// 
//     public List<AuditLog> getAuditLogs() {
//         return auditLogs;
//     }
// 
//     public void setAuditLogs(final List<AuditLog> auditLogs) {
//         this.auditLogs = auditLogs;
//     }
// 
//     @Override
//     public boolean equals(final Object o) {
//         if (this == o) {
//             return true;
//         }
//         if (!(o instanceof KillBillObject)) {
//             return false;
//         }
//         final KillBillObject that = (KillBillObject) o;
//         return Objects.equals(auditLogs, that.auditLogs);
//     }
// 
//     @Override
//     public int hashCode() {
//         return Objects.hash(auditLogs);
//     }
// }


// Path: src/main/java/org/killbill/billing/client/model/gen/PluginInfo.java
import org.killbill.billing.client.model.KillBillObject;
import java.util.Objects;
import java.util.Arrays;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.ArrayList;
import java.util.List;
import org.killbill.billing.client.model.gen.PluginServiceInfo;

    }

    public String getVersion() {
        return version;
    }

    public PluginInfo setState(final String state) {
        this.state = state;
        return this;
    }

    public String getState() {
        return state;
    }

    public PluginInfo setIsSelectedForStart(final Boolean isSelectedForStart) {
        this.isSelectedForStart = isSelectedForStart;
        return this;
    }

    @JsonProperty(value="isSelectedForStart")
    public Boolean isSelectedForStart() {
        return isSelectedForStart;
    }

    public PluginInfo setServices(final List<PluginServiceInfo> services) {
        this.services = services;
        return this;
    }

    public PluginInfo addServicesItem(final PluginServiceInfo servicesItem) {