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@Deprecated
037@Immutable
038public final class IDDocumentType extends Identifier {
039        
040        
041        private static final long serialVersionUID = -6631671451012338520L;
042        
043        
044        /**
045         * An identity document issued by a country's government for the
046         * purpose of identifying a citizen.
047         */
048        public static final IDDocumentType IDCARD = new IDDocumentType("idcard");
049        
050        
051        /**
052         * A passport is a travel document, usually issued by a country's
053         * government, that certifies the identity and nationality of its
054         * holder primarily for the purpose of international
055         * travel.
056         */
057        public static final IDDocumentType PASSPORT = new IDDocumentType("passport");
058        
059        
060        /**
061         * Official document permitting an individual to operate motorized
062         * vehicles. In the absence of a formal identity document, a driver's
063         * license may be accepted in many countries for identity verification.
064         */
065        public static final IDDocumentType DRIVING_PERMIT = new IDDocumentType("driving_permit");
066        
067        
068        /**
069         * ID Card issued by the German government to foreign nationals.
070         */
071        public static final IDDocumentType DE_IDCARD_FOREIGNERS = new IDDocumentType("de_idcard_foreigners");
072        
073        
074        /**
075         * ID Card issued by the German government to foreign nationals as
076         * passports replacement.
077         */
078        public static final IDDocumentType DE_EMERGENCY_IDCARD = new IDDocumentType("de_emergency_idcard");
079        
080        
081        /**
082         * Electronic Resident Permit issued by the German government to
083         * foreign nationals.
084         */
085        public static final IDDocumentType DE_ERP = new IDDocumentType("de_erp");
086        
087        
088        /**
089         * Electronic Resident Permit issued by the German government to
090         * foreign nationals as replacement for another identity document.
091         */
092        public static final IDDocumentType DE_ERP_REPLACEMENT_IDCARD = new IDDocumentType("de_erp_replacement_idcard");
093        
094        
095        /**
096         * ID Card issued by the German government to refugees as passports
097         * replacement.
098         */
099        public static final IDDocumentType DE_IDCARD_REFUGEES = new IDDocumentType("de_idcard_refugees");
100        
101        
102        /**
103         * ID Card issued by the German government to apatrids as passports
104         * replacement.
105         */
106        public static final IDDocumentType DE_IDCARD_APATRIDS = new IDDocumentType("de_idcard_apatrids");
107        
108        
109        /**
110         * Identity document issued to refugees in case of suspension of
111         * deportation that are marked as "id card replacement".
112         */
113        public static final IDDocumentType DE_CERTIFICATE_OF_SUSPENSION_OF_DEPORTATION = new IDDocumentType("de_certificate_of_suspension_of_deportation");
114        
115        
116        /**
117         * Permission to reside issued by the German government to foreign
118         * nationals applying for asylum.
119         */
120        public static final IDDocumentType DE_PERMISSION_TO_RESIDE = new IDDocumentType("de_permission_to_reside");
121        
122        
123        /**
124         * ID Card replacement document issued by the German government to
125         * foreign nationals (see Act on the Residence, Economic Activity and
126         * Integration of Foreigners in the Federal Territory, Residence Act,
127         * Appendix D1 ID Card replacement according to § 48 Abs. 2 i.V.m. §
128         * 78a Abs. 4).
129         */
130        public static final IDDocumentType DE_REPLACEMENT_IDCARD = new IDDocumentType("de_replacement_idcard");
131        
132        
133        /**
134         * Japanese drivers license.
135         */
136        public static final IDDocumentType JP_DRIVERS_LICENSE = new IDDocumentType("jp_drivers_license");
137        
138        
139        /**
140         * Japanese residence card for foreigners.
141         */
142        public static final IDDocumentType JP_RESIDENCY_CARD_FOR_FOREIGNER = new IDDocumentType("jp_residency_card_for_foreigner");
143        
144        
145        /**
146         * Japanese national ID card.
147         */
148        public static final IDDocumentType JP_INDIVIDUAL_NUMBER_CARD = new IDDocumentType("jp_individual_number_card");
149        
150        
151        /**
152         * Japanese special residency card for foreigners to permit permanent
153         * residence.
154         */
155        public static final IDDocumentType JP_PERMANENT_RESIDENCY_CARD_FOR_FOREIGNER = new IDDocumentType("jp_permanent_residency_card_for_foreigner");
156        
157        
158        /**
159         * Japanese health insurance card.
160         */
161        public static final IDDocumentType JP_HEALTH_INSURANCE_CARD = new IDDocumentType("jp_health_insurance_card");
162        
163        
164        /**
165         * Japanese residency card.
166         */
167        public static final IDDocumentType JP_RESIDENCY_CARD = new IDDocumentType("jp_residency_card");
168        
169        
170        /**
171         * Creates a new identity document type.
172         *
173         * @param value The identity document type value. Must not be
174         *              {@code null}.
175         */
176        public IDDocumentType(final String value) {
177                super(value);
178        }
179        
180        
181        @Override
182        public boolean equals(final Object object) {
183                
184                return object instanceof IDDocumentType &&
185                        this.toString().equals(object.toString());
186        }
187}
188