001/* 002 * oauth2-oidc-sdk 003 * 004 * Copyright 2012-2016, Connect2id Ltd and contributors. 005 * 006 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use 007 * this file except in compliance with the License. You may obtain a copy of the 008 * License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software distributed 013 * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 014 * CONDITIONS OF ANY KIND, either express or implied. See the License for the 015 * specific language governing permissions and limitations under the License. 016 */ 017 018package com.nimbusds.openid.connect.sdk.assurance.evidences; 019 020 021import net.jcip.annotations.Immutable; 022 023import com.nimbusds.oauth2.sdk.id.Identifier; 024 025 026/** 027 * Identity document type. 028 * 029 * <p>Related specifications: 030 * 031 * <ul> 032 * <li>OpenID Connect for Identity Assurance 1.0, sections 4.1.1.1 and 033 * 11.2. 034 * </ul> 035 */ 036@Immutable 037public final class IDDocumentType extends Identifier { 038 039 040 /** 041 * An identity document issued by a country's government for the 042 * purpose of identifying a citizen. 043 */ 044 public static final IDDocumentType IDCARD = new IDDocumentType("idcard"); 045 046 047 /** 048 * A passport is a travel document, usually issued by a country's 049 * government, that certifies the identity and nationality of its 050 * holder primarily for the purpose of international 051 * travel. 052 */ 053 public static final IDDocumentType PASSPORT = new IDDocumentType("passport"); 054 055 056 /** 057 * Official document permitting an individual to operate motorized 058 * vehicles. In the absence of a formal identity document, a driver's 059 * license may be accepted in many countries for identity verification. 060 */ 061 public static final IDDocumentType DRIVING_PERMIT = new IDDocumentType("driving_permit"); 062 063 064 /** 065 * ID Card issued by the German government to foreign nationals. 066 */ 067 public static final IDDocumentType DE_IDCARD_FOREIGNERS = new IDDocumentType("de_idcard_foreigners"); 068 069 070 /** 071 * ID Card issued by the German government to foreign nationals as 072 * passports replacement. 073 */ 074 public static final IDDocumentType DE_EMERGENCY_IDCARD = new IDDocumentType("de_emergency_idcard"); 075 076 077 /** 078 * Electronic Resident Permit issued by the German government to 079 * foreign nationals. 080 */ 081 public static final IDDocumentType DE_ERP = new IDDocumentType("de_erp"); 082 083 084 /** 085 * Electronic Resident Permit issued by the German government to 086 * foreign nationals as replacement for another identity document. 087 */ 088 public static final IDDocumentType DE_ERP_REPLACEMENT_IDCARD = new IDDocumentType("de_erp_replacement_idcard"); 089 090 091 /** 092 * ID Card issued by the German government to refugees as passports 093 * replacement. 094 */ 095 public static final IDDocumentType DE_IDCARD_REFUGEES = new IDDocumentType("de_idcard_refugees"); 096 097 098 /** 099 * ID Card issued by the German government to apatrids as passports 100 * replacement. 101 */ 102 public static final IDDocumentType DE_IDCARD_APATRIDS = new IDDocumentType("de_idcard_apatrids"); 103 104 105 /** 106 * Identity document issued to refugees in case of suspension of 107 * deportation that are marked as "id card replacement". 108 */ 109 public static final IDDocumentType DE_CERTIFICATE_OF_SUSPENSION_OF_DEPORTATION = new IDDocumentType("de_certificate_of_suspension_of_deportation"); 110 111 112 /** 113 * Permission to reside issued by the German government to foreign 114 * nationals applying for asylum. 115 */ 116 public static final IDDocumentType DE_PERMISSION_TO_RESIDE = new IDDocumentType("de_permission_to_reside"); 117 118 119 /** 120 * ID Card replacement document issued by the German government to 121 * foreign nationals (see Act on the Residence, Economic Activity and 122 * Integration of Foreigners in the Federal Territory, Residence Act, 123 * Appendix D1 ID Card replacement according to § 48 Abs. 2 i.V.m. § 124 * 78a Abs. 4). 125 */ 126 public static final IDDocumentType DE_REPLACEMENT_IDCARD = new IDDocumentType("de_replacement_idcard"); 127 128 129 /** 130 * Japanese drivers license. 131 */ 132 public static final IDDocumentType JP_DRIVERS_LICENSE = new IDDocumentType("jp_drivers_license"); 133 134 135 /** 136 * Japanese residence card for foreigners. 137 */ 138 public static final IDDocumentType JP_RESIDENCY_CARD_FOR_FOREIGNER = new IDDocumentType("jp_residency_card_for_foreigner"); 139 140 141 /** 142 * Japanese national ID card. 143 */ 144 public static final IDDocumentType JP_INDIVIDUAL_NUMBER_CARD = new IDDocumentType("jp_individual_number_card"); 145 146 147 /** 148 * Japanese special residency card for foreigners to permit permanent 149 * residence. 150 */ 151 public static final IDDocumentType JP_PERMANENT_RESIDENCY_CARD_FOR_FOREIGNER = new IDDocumentType("jp_permanent_residency_card_for_foreigner"); 152 153 154 /** 155 * Japanese health insurance card. 156 */ 157 public static final IDDocumentType JP_HEALTH_INSURANCE_CARD = new IDDocumentType("jp_health_insurance_card"); 158 159 160 /** 161 * Japanese residency card. 162 */ 163 public static final IDDocumentType JP_RESIDENCY_CARD = new IDDocumentType("jp_residency_card"); 164 165 166 /** 167 * Creates a new identity document type. 168 * 169 * @param value The identity document type value. Must not be 170 * {@code null}. 171 */ 172 public IDDocumentType(final String value) { 173 super(value); 174 } 175 176 177 @Override 178 public boolean equals(final Object object) { 179 180 return object instanceof IDDocumentType && 181 this.toString().equals(object.toString()); 182 } 183}