use atrium_api::types::string::Language;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, Default)]
pub struct OAuthAuthorizationServerMetadata {
pub issuer: String,
pub authorization_endpoint: String, pub token_endpoint: String, pub jwks_uri: Option<String>,
pub registration_endpoint: Option<String>,
pub scopes_supported: Vec<String>,
pub response_types_supported: Vec<String>,
pub response_modes_supported: Option<Vec<String>>,
pub grant_types_supported: Option<Vec<String>>,
pub token_endpoint_auth_methods_supported: Option<Vec<String>>,
pub token_endpoint_auth_signing_alg_values_supported: Option<Vec<String>>,
pub service_documentation: Option<String>,
pub ui_locales_supported: Option<Vec<Language>>,
pub op_policy_uri: Option<String>,
pub op_tos_uri: Option<String>,
pub revocation_endpoint: Option<String>,
pub revocation_endpoint_auth_methods_supported: Option<Vec<String>>,
pub revocation_endpoint_auth_signing_alg_values_supported: Option<Vec<String>>,
pub introspection_endpoint: Option<String>,
pub introspection_endpoint_auth_methods_supported: Option<Vec<String>>,
pub introspection_endpoint_auth_signing_alg_values_supported: Option<Vec<String>>,
pub code_challenge_methods_supported: Option<Vec<String>>,
pub subject_types_supported: Option<Vec<String>>,
pub require_request_uri_registration: Option<bool>,
pub pushed_authorization_request_endpoint: Option<String>,
pub require_pushed_authorization_requests: Option<bool>,
pub authorization_response_iss_parameter_supported: Option<bool>,
pub dpop_signing_alg_values_supported: Option<Vec<String>>,
pub client_id_metadata_document_supported: Option<bool>,
pub protected_resources: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, Default)]
pub struct OAuthProtectedResourceMetadata {
pub resource: String,
pub authorization_servers: Option<Vec<String>>,
pub jwks_uri: Option<String>,
pub scopes_supported: Vec<String>,
pub bearer_methods_supported: Option<Vec<String>>,
pub resource_signing_alg_values_supported: Option<Vec<String>>,
pub resource_documentation: Option<String>,
pub resource_policy_uri: Option<String>,
pub resource_tos_uri: Option<String>,
}