All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.gematik.ti.epa.vzd.client.model.UserCertificate Maven / Gradle / Ivy

There is a newer version: 1.0.1
Show newest version
/*
 * Copyright (c) 2020 gematik GmbH
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *    http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*
 * I_Directory_Administration
 * REST Schnittstelle zur Pflege der Verzeichniseinträge. Über diese Schnittstelle können Verzeichniseinträge inklusive Zertifikaten erzeugt, aktualisiert und gelöscht werden. Die Administration von Fachdaten erfolgt über Schnittstelle I_Directory_Application_Maintenance und wird durch die Fachanwendungen durchgeführt. Lesender Zugriff auf die Fachdaten ist mit Operation getDirectoryEntries in vorliegender Schnittstelle möglich.
 *
 * The version of the OpenAPI document: 1.1.1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


package de.gematik.ti.epa.vzd.client.model;

import com.google.gson.TypeAdapter;
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.annotations.SerializedName;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

/**
 * Jeder Verzeichniseintrag muss mindestens ein Zertifikat enthalten.
 */
@ApiModel(description = "Jeder Verzeichniseintrag muss mindestens ein Zertifikat enthalten.")

public class UserCertificate {

  public static final String SERIALIZED_NAME_DN = "dn";
  @SerializedName(SERIALIZED_NAME_DN)
  private DistinguishedName dn;

  public static final String SERIALIZED_NAME_ENTRY_TYPE = "entryType";
  @SerializedName(SERIALIZED_NAME_ENTRY_TYPE)
  private String entryType;

  public static final String SERIALIZED_NAME_TELEMATIK_I_D = "telematikID";
  @SerializedName(SERIALIZED_NAME_TELEMATIK_I_D)
  private String telematikID;

  public static final String SERIALIZED_NAME_PROFESSION_O_I_D = "professionOID";
  @SerializedName(SERIALIZED_NAME_PROFESSION_O_I_D)
  private List professionOID = null;

  /**
   * Gets or Sets usage
   */
  @JsonAdapter(UsageEnum.Adapter.class)
  public enum UsageEnum {
    KOM_LE("KOM-LE"),

    EPA("ePA");

    private String value;

    UsageEnum(String value) {
      this.value = value;
    }

    public String getValue() {
      return value;
    }

    @Override
    public String toString() {
      return String.valueOf(value);
    }

    public static UsageEnum fromValue(String value) {
      for (UsageEnum b : UsageEnum.values()) {
        if (b.value.equals(value)) {
          return b;
        }
      }
      throw new IllegalArgumentException("Unexpected value '" + value + "'");
    }

    public static class Adapter extends TypeAdapter {

      @Override
      public void write(final JsonWriter jsonWriter, final UsageEnum enumeration) throws IOException {
        jsonWriter.value(enumeration.getValue());
      }

      @Override
      public UsageEnum read(final JsonReader jsonReader) throws IOException {
        String value = jsonReader.nextString();
        return UsageEnum.fromValue(value);
      }
    }
  }

  public static final String SERIALIZED_NAME_USAGE = "usage";
  @SerializedName(SERIALIZED_NAME_USAGE)
  private List usage = null;

  public static final String SERIALIZED_NAME_USER_CERTIFICATE = "userCertificate";
  @SerializedName(SERIALIZED_NAME_USER_CERTIFICATE)
  private String userCertificate;

  public static final String SERIALIZED_NAME_DESCRIPTION = "description";
  @SerializedName(SERIALIZED_NAME_DESCRIPTION)
  private String description;


  public UserCertificate dn(DistinguishedName dn) {

    this.dn = dn;
    return this;
  }

  /**
   * Get dn
   *
   * @return dn
   **/
  @ApiModelProperty(required = true, value = "")

  public DistinguishedName getDn() {
    return dn;
  }


  public void setDn(DistinguishedName dn) {
    this.dn = dn;
  }


  /**
   * Eintragstyp Wird vom VZD anhand der in dem Zertifikat enthaltenen OID (Extension Admission, Attribut ProfessionOID) und der Spalte Eintragstyp in
   * Tab_VZD_Mapping_Eintragstyp_und_ProfessionOID automatisch eingetragen. Siehe auch [gemSpecOID]# Tab_PKI_402 und Tab_PKI_403
   *
   * @return entryType
   **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "Eintragstyp Wird vom VZD anhand der in dem Zertifikat enthaltenen OID (Extension Admission, Attribut ProfessionOID) und der Spalte Eintragstyp in Tab_VZD_Mapping_Eintragstyp_und_ProfessionOID automatisch eingetragen. Siehe auch [gemSpecOID]# Tab_PKI_402 und Tab_PKI_403")

  public String getEntryType() {
    return entryType;
  }


  public UserCertificate telematikID(String telematikID) {

    this.telematikID = telematikID;
    return this;
  }

  /**
   * Wird beim Anlegen des Eintrags vom VZD aus dem Zertifikat übernommen (Feld registrationNumber der Extension Admission). Falls der Basiseintrag
   * (baseDirectoryEntry) ohne Zertifikat angelegt wird, kann in Operation add_Directory_Entry die telematikID angegeben werden. Damit ist der
   * Verzeichniseintrag bereits über die telematikID auffindbar.
   *
   * @return telematikID
   **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "Wird beim Anlegen des Eintrags vom VZD aus dem Zertifikat übernommen (Feld registrationNumber der Extension Admission). Falls der Basiseintrag (baseDirectoryEntry) ohne Zertifikat angelegt wird, kann in Operation add_Directory_Entry die telematikID angegeben werden. Damit ist der Verzeichniseintrag bereits über die telematikID auffindbar.")

  public String getTelematikID() {
    return telematikID;
  }


  public void setTelematikID(String telematikID) {
    this.telematikID = telematikID;
  }


  /**
   * Get professionOID
   *
   * @return professionOID
   **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public List getProfessionOID() {
    return professionOID;
  }


  public UserCertificate usage(List usage) {

    this.usage = usage;
    return this;
  }

  public UserCertificate addUsageItem(UsageEnum usageItem) {
    if (this.usage == null) {
      this.usage = new ArrayList<>();
    }
    this.usage.add(usageItem);
    return this;
  }

  /**
   * Nutzungskennzeichnung kann pro Zertifikat mehrfach vergeben werden. Vorgegebener Wertebereich [KOM-LE, ePA]. Obligatorisch für LEI und KTR mit
   * vorgegebenem Wert usage=ePA
   *
   * @return usage
   **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "Nutzungskennzeichnung kann pro Zertifikat mehrfach vergeben werden. Vorgegebener Wertebereich [KOM-LE, ePA]. Obligatorisch für LEI und KTR mit vorgegebenem Wert usage=ePA")

  public List getUsage() {
    return usage;
  }


  public void setUsage(List usage) {
    this.usage = usage;
  }


  public UserCertificate userCertificate(String userCertificate) {

    this.userCertificate = userCertificate;
    return this;
  }

  /**
   * Zertifikat im DER Format. Base64 kodiert. Die pflegende Stelle erhält das Zertifikat vom TSP oder falls das nicht möglich ist wird ein
   * Ersatzverfahren abgestimmt.
   *
   * @return userCertificate
   **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "Zertifikat im DER Format. Base64 kodiert. Die pflegende Stelle erhält das Zertifikat vom TSP oder falls das nicht möglich ist wird ein Ersatzverfahren abgestimmt.")

  public String getUserCertificate() {
    return userCertificate;
  }


  public void setUserCertificate(String userCertificate) {
    this.userCertificate = userCertificate;
  }


  public UserCertificate description(String description) {

    this.description = description;
    return this;
  }

  /**
   * Dieses Attribut ermöglicht das Zertifikat zu beschreiben, um die Administration des VZD Eintrags zu vereinfachen.
   *
   * @return description
   **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "Dieses Attribut ermöglicht das Zertifikat zu beschreiben, um die Administration des VZD Eintrags zu vereinfachen.")

  public String getDescription() {
    return description;
  }


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


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    UserCertificate userCertificate = (UserCertificate) o;
    return Objects.equals(this.dn, userCertificate.dn) &&
        Objects.equals(this.entryType, userCertificate.entryType) &&
        Objects.equals(this.telematikID, userCertificate.telematikID) &&
        Objects.equals(this.professionOID, userCertificate.professionOID) &&
        Objects.equals(this.usage, userCertificate.usage) &&
        Objects.equals(this.userCertificate, userCertificate.userCertificate) &&
        Objects.equals(this.description, userCertificate.description);
  }

  @Override
  public int hashCode() {
    return Objects.hash(dn, entryType, telematikID, professionOID, usage, userCertificate, description);
  }


  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class UserCertificate {\n");
    sb.append("    dn: ").append(toIndentedString(dn)).append("\n");
    sb.append("    entryType: ").append(toIndentedString(entryType)).append("\n");
    sb.append("    telematikID: ").append(toIndentedString(telematikID)).append("\n");
    sb.append("    professionOID: ").append(toIndentedString(professionOID)).append("\n");
    sb.append("    usage: ").append(toIndentedString(usage)).append("\n");
    sb.append("    userCertificate: ").append(toIndentedString(userCertificate)).append("\n");
    sb.append("    description: ").append(toIndentedString(description)).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    ");
  }

}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy