package com.airlock.iam.opensso.jaxb.assertion;

import jakarta.xml.bind.JAXBElement;
import jakarta.xml.bind.annotation.XmlElementDecl;
import jakarta.xml.bind.annotation.XmlRegistry;
import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter;
import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import javax.xml.namespace.QName;

@XmlRegistry
public class ObjectFactory {
   private static final QName _BaseID_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "BaseID");
   private static final QName _NameID_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "NameID");
   private static final QName _EncryptedID_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "EncryptedID");
   private static final QName _Issuer_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "Issuer");
   private static final QName _AssertionIDRef_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "AssertionIDRef");
   private static final QName _AssertionURIRef_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "AssertionURIRef");
   private static final QName _Assertion_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "Assertion");
   private static final QName _Subject_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "Subject");
   private static final QName _SubjectConfirmation_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "SubjectConfirmation");
   private static final QName _SubjectConfirmationData_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "SubjectConfirmationData");
   private static final QName _Conditions_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "Conditions");
   private static final QName _Condition_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "Condition");
   private static final QName _AudienceRestriction_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "AudienceRestriction");
   private static final QName _Audience_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "Audience");
   private static final QName _OneTimeUse_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "OneTimeUse");
   private static final QName _ProxyRestriction_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "ProxyRestriction");
   private static final QName _Advice_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "Advice");
   private static final QName _EncryptedAssertion_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "EncryptedAssertion");
   private static final QName _Statement_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "Statement");
   private static final QName _AuthnStatement_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "AuthnStatement");
   private static final QName _SubjectLocality_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "SubjectLocality");
   private static final QName _AuthnContext_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "AuthnContext");
   private static final QName _AuthnContextClassRef_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "AuthnContextClassRef");
   private static final QName _AuthnContextDeclRef_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "AuthnContextDeclRef");
   private static final QName _AuthnContextDecl_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "AuthnContextDecl");
   private static final QName _AuthenticatingAuthority_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "AuthenticatingAuthority");
   private static final QName _AuthzDecisionStatement_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "AuthzDecisionStatement");
   private static final QName _Action_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "Action");
   private static final QName _Evidence_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "Evidence");
   private static final QName _AttributeStatement_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "AttributeStatement");
   private static final QName _Attribute_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "Attribute");
   private static final QName _AttributeValue_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "AttributeValue");
   private static final QName _EncryptedAttribute_QNAME = new QName("urn:oasis:names:tc:SAML:2.0:assertion", "EncryptedAttribute");

   public NameIDType createNameIDType() {
      return new NameIDType();
   }

   public EncryptedElementType createEncryptedElementType() {
      return new EncryptedElementType();
   }

   public AssertionType createAssertionType() {
      return new AssertionType();
   }

   public SubjectType createSubjectType() {
      return new SubjectType();
   }

   public SubjectConfirmationType createSubjectConfirmationType() {
      return new SubjectConfirmationType();
   }

   public SubjectConfirmationDataType createSubjectConfirmationDataType() {
      return new SubjectConfirmationDataType();
   }

   public ConditionsType createConditionsType() {
      return new ConditionsType();
   }

   public AudienceRestrictionType createAudienceRestrictionType() {
      return new AudienceRestrictionType();
   }

   public OneTimeUseType createOneTimeUseType() {
      return new OneTimeUseType();
   }

   public ProxyRestrictionType createProxyRestrictionType() {
      return new ProxyRestrictionType();
   }

   public AdviceType createAdviceType() {
      return new AdviceType();
   }

   public AuthnStatementType createAuthnStatementType() {
      return new AuthnStatementType();
   }

   public SubjectLocalityType createSubjectLocalityType() {
      return new SubjectLocalityType();
   }

   public AuthnContextType createAuthnContextType() {
      return new AuthnContextType();
   }

   public AuthzDecisionStatementType createAuthzDecisionStatementType() {
      return new AuthzDecisionStatementType();
   }

   public ActionType createActionType() {
      return new ActionType();
   }

   public EvidenceType createEvidenceType() {
      return new EvidenceType();
   }

   public AttributeStatementType createAttributeStatementType() {
      return new AttributeStatementType();
   }

   public AttributeType createAttributeType() {
      return new AttributeType();
   }

   public KeyInfoConfirmationDataType createKeyInfoConfirmationDataType() {
      return new KeyInfoConfirmationDataType();
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "BaseID")
   public JAXBElement<BaseIDAbstractType> createBaseID(BaseIDAbstractType value) {
      return new JAXBElement(_BaseID_QNAME, BaseIDAbstractType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "NameID")
   public JAXBElement<NameIDType> createNameID(NameIDType value) {
      return new JAXBElement(_NameID_QNAME, NameIDType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "EncryptedID")
   public JAXBElement<EncryptedElementType> createEncryptedID(EncryptedElementType value) {
      return new JAXBElement(_EncryptedID_QNAME, EncryptedElementType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "Issuer")
   public JAXBElement<NameIDType> createIssuer(NameIDType value) {
      return new JAXBElement(_Issuer_QNAME, NameIDType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "AssertionIDRef")
   @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
   public JAXBElement<String> createAssertionIDRef(String value) {
      return new JAXBElement(_AssertionIDRef_QNAME, String.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "AssertionURIRef")
   public JAXBElement<String> createAssertionURIRef(String value) {
      return new JAXBElement(_AssertionURIRef_QNAME, String.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "Assertion")
   public JAXBElement<AssertionType> createAssertion(AssertionType value) {
      return new JAXBElement(_Assertion_QNAME, AssertionType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "Subject")
   public JAXBElement<SubjectType> createSubject(SubjectType value) {
      return new JAXBElement(_Subject_QNAME, SubjectType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "SubjectConfirmation")
   public JAXBElement<SubjectConfirmationType> createSubjectConfirmation(SubjectConfirmationType value) {
      return new JAXBElement(_SubjectConfirmation_QNAME, SubjectConfirmationType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "SubjectConfirmationData")
   public JAXBElement<SubjectConfirmationDataType> createSubjectConfirmationData(SubjectConfirmationDataType value) {
      return new JAXBElement(_SubjectConfirmationData_QNAME, SubjectConfirmationDataType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "Conditions")
   public JAXBElement<ConditionsType> createConditions(ConditionsType value) {
      return new JAXBElement(_Conditions_QNAME, ConditionsType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "Condition")
   public JAXBElement<ConditionAbstractType> createCondition(ConditionAbstractType value) {
      return new JAXBElement(_Condition_QNAME, ConditionAbstractType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "AudienceRestriction")
   public JAXBElement<AudienceRestrictionType> createAudienceRestriction(AudienceRestrictionType value) {
      return new JAXBElement(_AudienceRestriction_QNAME, AudienceRestrictionType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "Audience")
   public JAXBElement<String> createAudience(String value) {
      return new JAXBElement(_Audience_QNAME, String.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "OneTimeUse")
   public JAXBElement<OneTimeUseType> createOneTimeUse(OneTimeUseType value) {
      return new JAXBElement(_OneTimeUse_QNAME, OneTimeUseType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "ProxyRestriction")
   public JAXBElement<ProxyRestrictionType> createProxyRestriction(ProxyRestrictionType value) {
      return new JAXBElement(_ProxyRestriction_QNAME, ProxyRestrictionType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "Advice")
   public JAXBElement<AdviceType> createAdvice(AdviceType value) {
      return new JAXBElement(_Advice_QNAME, AdviceType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "EncryptedAssertion")
   public JAXBElement<EncryptedElementType> createEncryptedAssertion(EncryptedElementType value) {
      return new JAXBElement(_EncryptedAssertion_QNAME, EncryptedElementType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "Statement")
   public JAXBElement<StatementAbstractType> createStatement(StatementAbstractType value) {
      return new JAXBElement(_Statement_QNAME, StatementAbstractType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "AuthnStatement")
   public JAXBElement<AuthnStatementType> createAuthnStatement(AuthnStatementType value) {
      return new JAXBElement(_AuthnStatement_QNAME, AuthnStatementType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "SubjectLocality")
   public JAXBElement<SubjectLocalityType> createSubjectLocality(SubjectLocalityType value) {
      return new JAXBElement(_SubjectLocality_QNAME, SubjectLocalityType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "AuthnContext")
   public JAXBElement<AuthnContextType> createAuthnContext(AuthnContextType value) {
      return new JAXBElement(_AuthnContext_QNAME, AuthnContextType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "AuthnContextClassRef")
   public JAXBElement<String> createAuthnContextClassRef(String value) {
      return new JAXBElement(_AuthnContextClassRef_QNAME, String.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "AuthnContextDeclRef")
   public JAXBElement<String> createAuthnContextDeclRef(String value) {
      return new JAXBElement(_AuthnContextDeclRef_QNAME, String.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "AuthnContextDecl")
   public JAXBElement<Object> createAuthnContextDecl(Object value) {
      return new JAXBElement(_AuthnContextDecl_QNAME, Object.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "AuthenticatingAuthority")
   public JAXBElement<String> createAuthenticatingAuthority(String value) {
      return new JAXBElement(_AuthenticatingAuthority_QNAME, String.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "AuthzDecisionStatement")
   public JAXBElement<AuthzDecisionStatementType> createAuthzDecisionStatement(AuthzDecisionStatementType value) {
      return new JAXBElement(_AuthzDecisionStatement_QNAME, AuthzDecisionStatementType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "Action")
   public JAXBElement<ActionType> createAction(ActionType value) {
      return new JAXBElement(_Action_QNAME, ActionType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "Evidence")
   public JAXBElement<EvidenceType> createEvidence(EvidenceType value) {
      return new JAXBElement(_Evidence_QNAME, EvidenceType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "AttributeStatement")
   public JAXBElement<AttributeStatementType> createAttributeStatement(AttributeStatementType value) {
      return new JAXBElement(_AttributeStatement_QNAME, AttributeStatementType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "Attribute")
   public JAXBElement<AttributeType> createAttribute(AttributeType value) {
      return new JAXBElement(_Attribute_QNAME, AttributeType.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "AttributeValue")
   public JAXBElement<Object> createAttributeValue(Object value) {
      return new JAXBElement(_AttributeValue_QNAME, Object.class, null, value);
   }

   @XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "EncryptedAttribute")
   public JAXBElement<EncryptedElementType> createEncryptedAttribute(EncryptedElementType value) {
      return new JAXBElement(_EncryptedAttribute_QNAME, EncryptedElementType.class, null, value);
   }
}
