# GraphQL schema example # # https://gqlgen.com/getting-started/ scalar Int64 scalar Map scalar Any type Meta { version: String! is_google_login_enabled: Boolean! is_facebook_login_enabled: Boolean! is_github_login_enabled: Boolean! is_email_verification_enabled: Boolean! is_basic_authentication_enabled: Boolean! is_magic_link_login_enabled: Boolean! } type User { id: ID! email: String! email_verified: Boolean! signup_methods: String! given_name: String family_name: String middle_name: String nickname: String # defaults to email preferred_username: String gender: String birthdate: String phone_number: String phone_number_verified: Boolean picture: String roles: [String!]! created_at: Int64 updated_at: Int64 } type VerificationRequest { id: ID! identifier: String token: String email: String expires: Int64 created_at: Int64 updated_at: Int64 } type Error { message: String! reason: String! } type AuthResponse { message: String! access_token: String expires_at: Int64 user: User } type Response { message: String! } type AdminLoginResponse { message: String! access_token: String! expires_at: Int64! } input AdminLoginInput { admin_secret: String! } input SignUpInput { email: String! given_name: String family_name: String middle_name: String nickname: String gender: String birthdate: String phone_number: String picture: String password: String! confirm_password: String! roles: [String!] } input LoginInput { email: String! password: String! roles: [String!] } input VerifyEmailInput { token: String! } input ResendVerifyEmailInput { email: String! identifier: String! } input UpdateProfileInput { old_password: String new_password: String confirm_new_password: String email: String given_name: String family_name: String middle_name: String nickname: String gender: String birthdate: String phone_number: String picture: String } input UpdateUserInput { id: ID! email: String given_name: String family_name: String middle_name: String nickname: String gender: String birthdate: String phone_number: String picture: String roles: [String] } input ForgotPasswordInput { email: String! } input ResetPasswordInput { token: String! password: String! confirm_password: String! } input DeleteUserInput { email: String! } input MagicLinkLoginInput { email: String! roles: [String!] } type Mutation { signup(params: SignUpInput!): AuthResponse! login(params: LoginInput!): AuthResponse! magic_link_login(params: MagicLinkLoginInput!): Response! logout: Response! update_profile(params: UpdateProfileInput!): Response! verify_email(params: VerifyEmailInput!): AuthResponse! resend_verify_email(params: ResendVerifyEmailInput!): Response! forgot_password(params: ForgotPasswordInput!): Response! reset_password(params: ResetPasswordInput!): Response! # admin only apis _delete_user(params: DeleteUserInput!): Response! _update_user(params: UpdateUserInput!): User! _admin_login(params: AdminLoginInput!): AdminLoginResponse } type Query { meta: Meta! session(roles: [String!]): AuthResponse profile: User! # admin only apis _users: [User!]! _verification_requests: [VerificationRequest!]! _admin_session: AdminLoginResponse }