How to create custom GraphQL in Magento 2

Files needed for create custom graphql
1. etc/module.xml
2. etc/schema.graphqls
3. Model/Resolver/CreateCustomer.php
4. Model/Resolver/SendOtp.php
5. Model/Resolver/VerifyOtp.php
6. Composer.json
7. registration.php

etc/schema.graphqls
#Graphql Module

type Mutation {
mobileloginOTP (
mobileNumber: String @doc(description: "Mobile Number")
websiteId: Int = 1 @doc (description: "Website Id")
): OtpOutput @resolver(class: "Vendorname\\Modulename\\Model\\Resolver\\SendOtp") @doc(description:"Send Mobile OTP")


createCustomerAccount (
input: CustomerInput!
mobileNumber: String @doc(description: "Mobile Number")
otp: String @doc(description: "OTP")
websiteId: Int = 1 @doc (description: "Website Id")
): CustomerOutput @resolver(class: "Vendorname\\Modulename\\Model\\Resolver\\CreateCustomer") @doc(description:"Create an Account")
}

type Query {
loginOTPVerify (
mobileNumber: String @doc(description: "Mobile Number")
otp: String @doc(description: "OTP")
websiteId: Int = 1 @doc (description: "Website Id")
): VerifyOtpOutput @resolver(class: "Vendorname\\Modulename\\Model\\Resolver\\VerifyOtp") @doc(description:"Verify Mobile OTP")
}

type OtpOutput {
status: Boolean
message: String
}


type VerifyOtpOutput {
status: Boolean
message: String
}


type CustomerOutput {
customer: Customer!
status: Boolean
message: String
}