Source code for fair_wizard.automation.saml.model

import datetime

from pydantic import BaseModel, Field


[docs] class SubjectConfirmation(BaseModel): method: str = Field(alias='subjectConfirmationMethod') address: str = Field(alias='subjectConfirmationAddress') notOnOrAfter: datetime.datetime = Field(alias='subjectConfirmationNotOnOrAfter') recipient: str = Field(alias='subjectConfirmationRecipient')
[docs] class NameID(BaseModel): qualifier: str | None = Field(alias='nameIDQualifier') sp_name_qualifier: str | None = Field(alias='nameIDSPNameQualifier') sp_provided_id: str | None = Field(alias='nameIDSPProvidedID') format: str | None = Field(alias='nameIDFormat') value: str = Field(alias='nameIDValue')
[docs] class Subject(BaseModel): confirmations: list[SubjectConfirmation] = Field(alias='subjectConfirmations') name_id: NameID = Field(alias='subjectNameID')
[docs] class AudienceRestriction(BaseModel): audience: list[str] = Field(alias='audienceRestrictionAudience')
[docs] class Conditions(BaseModel): no_before: datetime.datetime = Field(alias='conditionsNotBefore') not_on_or_after: datetime.datetime = Field(alias='conditionsNotOnOrAfter') audience_restrictions: list[AudienceRestriction] = Field(alias='conditionsAudienceRestrictions')
[docs] class AuthnStatement(BaseModel): instant: datetime.datetime = Field(alias='authnStatementInstant') session_index: str = Field(alias='authnStatementSessionIndex') locality: str = Field(alias='authnStatementLocality')
[docs] class AssertionAttribute(BaseModel): name: str = Field(alias='attributeName') friendly_name: str | None = Field(alias='attributeFriendlyName') name_format: str = Field(alias='attributeNameFormat') value: str = Field(alias='attributeValue')
[docs] class Assertion(BaseModel): id: str = Field(alias='assertionId') issued: datetime.datetime = Field(alias='assertionIssued') issuer: str = Field(alias='assertionIssuer') subject: Subject = Field(alias='assertionSubject') conditions: Conditions = Field(alias='assertionConditions') authn_statement: AuthnStatement = Field(alias='assertionAuthnStatement') attribute_statement: list[AssertionAttribute] = Field(alias='assertionAttributeStatement')
[docs] class SamlUserLoggedInEvent(BaseModel): assertion: Assertion = Field(alias='assertion')