Source code for pyeudiw.presentation_exchange.schemas.oid4vc_presentation_definition

# generated by datamodel-codegen:
#   filename:  https://raw.githubusercontent.com/openid/oid4vc-haip-sd-jwt-vc/main/schemas/presentation_definition.json
#   timestamp: 2023-12-05T14:15:47+00:00

from __future__ import annotations

from enum import Enum
from typing import Annotated, Any, Dict, List, Optional, Union

from pydantic import BaseModel, ConfigDict, Field, RootModel, conint


[docs] class LimitDisclosure(Enum): required = "required" preferred = "preferred"
[docs] class Constraints(BaseModel): model_config = ConfigDict( extra="forbid", ) limit_disclosure: Optional[LimitDisclosure] = None fields: Optional[List[Any]] = None
[docs] class PresentationDefinitionClaimFormatDesignations1(BaseModel): model_config = ConfigDict( extra="forbid", ) alg: Optional[List[str]] = Field(None, min_length=1)
[docs] class PresentationDefinitionClaimFormatDesignations2(BaseModel): model_config = ConfigDict( extra="forbid", ) proof_type: Optional[List[str]] = Field(None, min_length=1)
[docs] class PresentationDefinitionClaimFormatDesignations3(BaseModel): model_config = ConfigDict( extra="forbid", )
[docs] class PresentationDefinitionClaimFormatDesignations( RootModel[ Union[ Dict[ Annotated[str, Field(pattern=r"^jwt$|^jwt_vc$|^jwt_vp$")], PresentationDefinitionClaimFormatDesignations1, ], Dict[ Annotated[str, Field(pattern=r"^ldp_vc$|^ldp_vp$|^ldp$")], PresentationDefinitionClaimFormatDesignations2, ], Dict[ Annotated[str, Field(pattern=r"^dc\+sd-jwt$")], PresentationDefinitionClaimFormatDesignations3, ], ] ] ): root: Union[ Dict[ Annotated[str, Field(pattern=r"^jwt$|^jwt_vc$|^jwt_vp$")], PresentationDefinitionClaimFormatDesignations1, ], Dict[ Annotated[str, Field(pattern=r"^ldp_vc$|^ldp_vp$|^ldp$")], PresentationDefinitionClaimFormatDesignations2, ], Dict[ Annotated[str, Field(pattern=r"^dc\+sd-jwt$")], PresentationDefinitionClaimFormatDesignations2, ], ] = Field(..., title="Presentation Definition Claim Format Designations")
[docs] class Rule(Enum): pick = "pick"
[docs] class SubmissionRequirement1(BaseModel): model_config = ConfigDict( extra="forbid", ) name: Optional[str] = None rule: Rule count: Optional[conint(ge=1)] = None from_: str = Field(..., alias="from")
[docs] class SubmissionRequirement(RootModel[SubmissionRequirement1]): root: SubmissionRequirement1
[docs] class InputDescriptor(BaseModel): model_config = ConfigDict( extra="forbid", ) id: str name: Optional[str] = None purpose: Optional[str] = None format: Optional[PresentationDefinitionClaimFormatDesignations] = None group: Optional[List[str]] = None constraints: Constraints
[docs] class PresentationDefinition(BaseModel): model_config = ConfigDict( extra="forbid", ) id: str input_descriptors: List[InputDescriptor] submission_requirements: Optional[List[SubmissionRequirement]] = None