
    k7i0                     8    S SK Jr  S SKJr   " S S\5      rS rg)    )AuthorizationServerMetadatavalidate_array_valuec                      ^  \ rS rSr/ SQrU 4S jrS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       rSrU =r $ )OpenIDProviderMetadata   )"issuerauthorization_endpointtoken_endpointjwks_uriregistration_endpointscopes_supportedresponse_types_supportedresponse_modes_supportedgrant_types_supported%token_endpoint_auth_methods_supportedservice_documentationui_locales_supportedop_policy_uri
op_tos_uri0token_endpoint_auth_signing_alg_values_supportedacr_values_supportedsubject_types_supported%id_token_signing_alg_values_supported(id_token_encryption_alg_values_supported(id_token_encryption_enc_values_supported%userinfo_signing_alg_values_supported(userinfo_encryption_alg_values_supported(userinfo_encryption_enc_values_supported+request_object_signing_alg_values_supported.request_object_encryption_alg_values_supported.request_object_encryption_enc_values_supporteddisplay_values_supportedclaim_types_supportedclaims_supportedclaims_locales_supportedclaims_parameter_supportedrequest_parameter_supportedrequest_uri_parameter_supported require_request_uri_registrationc                 ^   > U R                  S5      nUc  [        S5      e[        TU ]  5       $ )Nr   z"jwks_uri" is required)get
ValueErrorsupervalidate_jwks_uri)selfr   	__class__s     W/home/james-whalen/.local/lib/python3.13/site-packages/authlib/oidc/discovery/models.pyr/   (OpenIDProviderMetadata.validate_jwks_uri4   s1    88J'566w(**    c                     [        U S5        g)zmOPTIONAL. JSON array containing a list of the Authentication
Context Class References that this OP supports.
r   Nr   r0   s    r2   validate_acr_values_supported4OpenIDProviderMetadata.validate_acr_values_supported;   s     	T#9:r4   c                     U R                  S5      nUc  [        S5      e[        U[        5      (       d  [        S5      eSS1nUR	                  [        U5      5      (       d  [        S5      eg)zREQUIRED. JSON array containing a list of the Subject Identifier
types that this OP supports. Valid types include pairwise and public.
r   Nz%"subject_types_supported" is requiredz,"subject_types_supported" MUST be JSON arraypairwisepublicz1"subject_types_supported" contains invalid values)r,   r-   
isinstancelist
issupersetset)r0   valuesvalid_typess      r2    validate_subject_types_supported7OpenIDProviderMetadata.validate_subject_types_supportedA   sq    
 34>DEE &$''KLL "8,%%c&k22PQQ 3r4   c                     U R                  S5      nUc  [        S5      e[        U[        5      (       d  [        S5      eSU;  a  [        S5      eg)a|  REQUIRED. JSON array containing a list of the JWS signing
algorithms (alg values) supported by the OP for the ID Token to
encode the Claims in a JWT [JWT]. The algorithm RS256 MUST be
included. The value none MAY be supported, but MUST NOT be used
unless the Response Type used returns no ID Token from the
Authorization Endpoint (such as when using the Authorization
Code Flow).
r   Nz3"id_token_signing_alg_values_supported" is requiredz:"id_token_signing_alg_values_supported" MUST be JSON arrayRS256zC"RS256" MUST be included in "id_token_signing_alg_values_supported")r,   r-   r<   r=   r0   r@   s     r2   .validate_id_token_signing_alg_values_supportedEOpenIDProviderMetadata.validate_id_token_signing_alg_values_supportedS   sb     AB>RSS &$''L 
 & U  !r4   c                     [        U S5        g)zOPTIONAL. JSON array containing a list of the JWE encryption
algorithms (alg values) supported by the OP for the ID Token to
encode the Claims in a JWT.
r   Nr   r6   s    r2   1validate_id_token_encryption_alg_values_supportedHOpenIDProviderMetadata.validate_id_token_encryption_alg_values_supportedm       
 	T#MNr4   c                     [        U S5        g)zOPTIONAL. JSON array containing a list of the JWE encryption
algorithms (enc values) supported by the OP for the ID Token to
encode the Claims in a JWT.
r   Nr   r6   s    r2   1validate_id_token_encryption_enc_values_supportedHOpenIDProviderMetadata.validate_id_token_encryption_enc_values_supportedt   rL   r4   c                     [        U S5        g)zOPTIONAL. JSON array containing a list of the JWS signing
algorithms (alg values) [JWA] supported by the UserInfo Endpoint
to encode the Claims in a JWT. The value none MAY be included.
r   Nr   r6   s    r2   .validate_userinfo_signing_alg_values_supportedEOpenIDProviderMetadata.validate_userinfo_signing_alg_values_supported{   s    
 	T#JKr4   c                     [        U S5        g)zOPTIONAL. JSON array containing a list of the JWE encryption
algorithms (alg values) [JWA] supported by the UserInfo Endpoint
to encode the Claims in a JWT.
r   Nr   r6   s    r2   1validate_userinfo_encryption_alg_values_supportedHOpenIDProviderMetadata.validate_userinfo_encryption_alg_values_supported   rL   r4   c                     [        U S5        g)zOPTIONAL. JSON array containing a list of the JWE encryption
algorithms (enc values) [JWA] supported by the UserInfo Endpoint
to encode the Claims in a JWT.
r   Nr   r6   s    r2   1validate_userinfo_encryption_enc_values_supportedHOpenIDProviderMetadata.validate_userinfo_encryption_enc_values_supported   rL   r4   c                 v    U R                  S5      nU(       d  g[        U[        5      (       d  [        S5      eg)a  OPTIONAL. JSON array containing a list of the JWS signing
algorithms (alg values) supported by the OP for Request Objects,
which are described in Section 6.1 of OpenID Connect Core 1.0.
These algorithms are used both when the Request Object is passed
by value (using the request parameter) and when it is passed by
reference (using the request_uri parameter). Servers SHOULD support
none and RS256.
r    Nz@"request_object_signing_alg_values_supported" MUST be JSON array)r,   r<   r=   r-   rF   s     r2   4validate_request_object_signing_alg_values_supportedKOpenIDProviderMetadata.validate_request_object_signing_alg_values_supported   s;     GH&$''R  (r4   c                     [        U S5        g)zOPTIONAL. JSON array containing a list of the JWE encryption
algorithms (alg values) supported by the OP for Request Objects.
These algorithms are used both when the Request Object is passed
by value and when it is passed by reference.
r!   Nr   r6   s    r2   7validate_request_object_encryption_alg_values_supportedNOpenIDProviderMetadata.validate_request_object_encryption_alg_values_supported        	T#STr4   c                     [        U S5        g)zOPTIONAL. JSON array containing a list of the JWE encryption
algorithms (enc values) supported by the OP for Request Objects.
These algorithms are used both when the Request Object is passed
by value and when it is passed by reference.
r"   Nr   r6   s    r2   7validate_request_object_encryption_enc_values_supportedNOpenIDProviderMetadata.validate_request_object_encryption_enc_values_supported   r_   r4   c                     U R                  S5      nU(       d  g[        U[        5      (       d  [        S5      e1 SknUR	                  [        U5      5      (       d  [        S5      eg)zOPTIONAL. JSON array containing a list of the display parameter
values that the OpenID Provider supports. These values are described
in Section 3.1.2.1 of OpenID Connect Core 1.0.
r#   Nz-"display_values_supported" MUST be JSON array>   wappagepopuptouchz2"display_values_supported" contains invalid valuesr,   r<   r=   r-   r>   r?   r0   r@   valid_valuess      r2   !validate_display_values_supported8OpenIDProviderMetadata.validate_display_values_supported   s]    
 45&$''LMM8&&s6{33QRR 4r4   c                     U R                  S5      nU(       d  g[        U[        5      (       d  [        S5      e1 SknUR	                  [        U5      5      (       d  [        S5      eg)a2  OPTIONAL. JSON array containing a list of the Claim Types that
the OpenID Provider supports. These Claim Types are described in
Section 5.6 of OpenID Connect Core 1.0. Values defined by this
specification are normal, aggregated, and distributed. If omitted,
the implementation supports only normal Claims.
r$   Nz*"claim_types_supported" MUST be JSON array>   normal
aggregateddistributedz/"claim_types_supported" contains invalid valuesrh   ri   s      r2   validate_claim_types_supported5OpenIDProviderMetadata.validate_claim_types_supported   s]     12&$''IJJ>&&s6{33NOO 4r4   c                     [        U S5        g)zRECOMMENDED. JSON array containing a list of the Claim Names
of the Claims that the OpenID Provider MAY be able to supply values
for. Note that for privacy or other reasons, this might not be an
exhaustive list.
r%   Nr   r6   s    r2   validate_claims_supported0OpenIDProviderMetadata.validate_claims_supported   s     	T#56r4   c                     [        U S5        g)zOPTIONAL. Languages and scripts supported for values in Claims
being returned, represented as a JSON array of BCP47 [RFC5646]
language tag values. Not all languages and scripts are necessarily
supported for all Claim values.
r&   Nr   r6   s    r2   !validate_claims_locales_supported8OpenIDProviderMetadata.validate_claims_locales_supported   s     	T#=>r4   c                     [        U S5        g)zOPTIONAL. Boolean value specifying whether the OP supports use of
the claims parameter, with true indicating support. If omitted, the
default value is false.
r'   N_validate_boolean_valuer6   s    r2   #validate_claims_parameter_supported:OpenIDProviderMetadata.validate_claims_parameter_supported   s    
 	 &BCr4   c                     [        U S5        g)zOPTIONAL. Boolean value specifying whether the OP supports use of
the request parameter, with true indicating support. If omitted, the
default value is false.
r(   Nrz   r6   s    r2   $validate_request_parameter_supported;OpenIDProviderMetadata.validate_request_parameter_supported   s    
 	 &CDr4   c                     [        U S5        g)zOPTIONAL. Boolean value specifying whether the OP supports use of
the request_uri parameter, with true indicating support. If omitted,
the default value is true.
r)   Nrz   r6   s    r2   (validate_request_uri_parameter_supported?OpenIDProviderMetadata.validate_request_uri_parameter_supported   s    
 	 &GHr4   c                     [        U S5        g)zOPTIONAL. Boolean value specifying whether the OP requires any
request_uri values used to be pre-registered using the request_uris
registration parameter. Pre-registration is REQUIRED when the value
is true. If omitted, the default value is false.
r*   Nrz   r6   s    r2   )validate_require_request_uri_registration@OpenIDProviderMetadata.validate_require_request_uri_registration   s     	 &HIr4   c                 (    U R                  SS/5      $ )Nr$   rn   r,   r6   s    r2   r$   ,OpenIDProviderMetadata.claim_types_supported  s     xx/(<<r4   c                 &    U R                  SS5      $ )Nr'   Fr   r6   s    r2   r'   1OpenIDProviderMetadata.claims_parameter_supported  s     xx4e<<r4   c                 &    U R                  SS5      $ )Nr(   Fr   r6   s    r2   r(   2OpenIDProviderMetadata.request_parameter_supported  s     xx5u==r4   c                 &    U R                  SS5      $ )Nr)   Tr   r6   s    r2   r)   6OpenIDProviderMetadata.request_uri_parameter_supported  s     xx94@@r4   c                 &    U R                  SS5      $ )Nr*   Fr   r6   s    r2   r*   7OpenIDProviderMetadata.require_request_uri_registration  s     xx:EBBr4    )!__name__
__module____qualname____firstlineno__REGISTRY_KEYSr/   r7   rB   rG   rJ   rN   rQ   rT   rW   rZ   r]   ra   rk   rq   rt   rw   r|   r   r   r   propertyr$   r'   r(   r)   r*   __static_attributes____classcell__)r1   s   @r2   r   r      s    ,M\+;R$4OOLOO$UUS P$7?DEIJ = = = = > > A A C Cr4   r   c                 >    X;  a  g X   S;  a  [        SU S35      eg )N)TF"z" MUST be boolean)r-   )metadatakeys     r2   r{   r{     s/    
}M)1SE!2344 *r4   N)authlib.oauth2.rfc8414r   authlib.oauth2.rfc8414.modelsr   r   r{   r   r4   r2   <module>r      s"    > >SC8 SCl5r4   