import { QueryBuilder, buildCustomDocument } from '../query-builder';
import { connectionFieldsMap } from '../input-types';
export function createMutationOperations(client) {
    return {
        signOut: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'SignOut',
            fieldName: 'signOut',
            ...buildCustomDocument('mutation', 'SignOut', 'signOut', options.select, args, [
                {
                    name: 'input',
                    type: 'SignOutInput!',
                },
            ], connectionFieldsMap, 'SignOutPayload'),
        }),
        sendAccountDeletionEmail: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'SendAccountDeletionEmail',
            fieldName: 'sendAccountDeletionEmail',
            ...buildCustomDocument('mutation', 'SendAccountDeletionEmail', 'sendAccountDeletionEmail', options.select, args, [
                {
                    name: 'input',
                    type: 'SendAccountDeletionEmailInput!',
                },
            ], connectionFieldsMap, 'SendAccountDeletionEmailPayload'),
        }),
        checkPassword: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'CheckPassword',
            fieldName: 'checkPassword',
            ...buildCustomDocument('mutation', 'CheckPassword', 'checkPassword', options.select, args, [
                {
                    name: 'input',
                    type: 'CheckPasswordInput!',
                },
            ], connectionFieldsMap, 'CheckPasswordPayload'),
        }),
        disconnectAccount: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'DisconnectAccount',
            fieldName: 'disconnectAccount',
            ...buildCustomDocument('mutation', 'DisconnectAccount', 'disconnectAccount', options.select, args, [
                {
                    name: 'input',
                    type: 'DisconnectAccountInput!',
                },
            ], connectionFieldsMap, 'DisconnectAccountPayload'),
        }),
        revokeApiKey: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'RevokeApiKey',
            fieldName: 'revokeApiKey',
            ...buildCustomDocument('mutation', 'RevokeApiKey', 'revokeApiKey', options.select, args, [
                {
                    name: 'input',
                    type: 'RevokeApiKeyInput!',
                },
            ], connectionFieldsMap, 'RevokeApiKeyPayload'),
        }),
        revokeSession: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'RevokeSession',
            fieldName: 'revokeSession',
            ...buildCustomDocument('mutation', 'RevokeSession', 'revokeSession', options.select, args, [
                {
                    name: 'input',
                    type: 'RevokeSessionInput!',
                },
            ], connectionFieldsMap, 'RevokeSessionPayload'),
        }),
        verifyPassword: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'VerifyPassword',
            fieldName: 'verifyPassword',
            ...buildCustomDocument('mutation', 'VerifyPassword', 'verifyPassword', options.select, args, [
                {
                    name: 'input',
                    type: 'VerifyPasswordInput!',
                },
            ], connectionFieldsMap, 'VerifyPasswordPayload'),
        }),
        verifyTotp: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'VerifyTotp',
            fieldName: 'verifyTotp',
            ...buildCustomDocument('mutation', 'VerifyTotp', 'verifyTotp', options.select, args, [
                {
                    name: 'input',
                    type: 'VerifyTotpInput!',
                },
            ], connectionFieldsMap, 'VerifyTotpPayload'),
        }),
        confirmDeleteAccount: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'ConfirmDeleteAccount',
            fieldName: 'confirmDeleteAccount',
            ...buildCustomDocument('mutation', 'ConfirmDeleteAccount', 'confirmDeleteAccount', options.select, args, [
                {
                    name: 'input',
                    type: 'ConfirmDeleteAccountInput!',
                },
            ], connectionFieldsMap, 'ConfirmDeleteAccountPayload'),
        }),
        setPassword: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'SetPassword',
            fieldName: 'setPassword',
            ...buildCustomDocument('mutation', 'SetPassword', 'setPassword', options.select, args, [
                {
                    name: 'input',
                    type: 'SetPasswordInput!',
                },
            ], connectionFieldsMap, 'SetPasswordPayload'),
        }),
        verifyEmail: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'VerifyEmail',
            fieldName: 'verifyEmail',
            ...buildCustomDocument('mutation', 'VerifyEmail', 'verifyEmail', options.select, args, [
                {
                    name: 'input',
                    type: 'VerifyEmailInput!',
                },
            ], connectionFieldsMap, 'VerifyEmailPayload'),
        }),
        provisionNewUser: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'ProvisionNewUser',
            fieldName: 'provisionNewUser',
            ...buildCustomDocument('mutation', 'ProvisionNewUser', 'provisionNewUser', options.select, args, [
                {
                    name: 'input',
                    type: 'ProvisionNewUserInput!',
                },
            ], connectionFieldsMap, 'ProvisionNewUserPayload'),
        }),
        resetPassword: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'ResetPassword',
            fieldName: 'resetPassword',
            ...buildCustomDocument('mutation', 'ResetPassword', 'resetPassword', options.select, args, [
                {
                    name: 'input',
                    type: 'ResetPasswordInput!',
                },
            ], connectionFieldsMap, 'ResetPasswordPayload'),
        }),
        signInCrossOrigin: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'SignInCrossOrigin',
            fieldName: 'signInCrossOrigin',
            ...buildCustomDocument('mutation', 'SignInCrossOrigin', 'signInCrossOrigin', options.select, args, [
                {
                    name: 'input',
                    type: 'SignInCrossOriginInput!',
                },
            ], connectionFieldsMap, 'SignInCrossOriginPayload'),
        }),
        signUp: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'SignUp',
            fieldName: 'signUp',
            ...buildCustomDocument('mutation', 'SignUp', 'signUp', options.select, args, [
                {
                    name: 'input',
                    type: 'SignUpInput!',
                },
            ], connectionFieldsMap, 'SignUpPayload'),
        }),
        requestCrossOriginToken: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'RequestCrossOriginToken',
            fieldName: 'requestCrossOriginToken',
            ...buildCustomDocument('mutation', 'RequestCrossOriginToken', 'requestCrossOriginToken', options.select, args, [
                {
                    name: 'input',
                    type: 'RequestCrossOriginTokenInput!',
                },
            ], connectionFieldsMap, 'RequestCrossOriginTokenPayload'),
        }),
        signIn: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'SignIn',
            fieldName: 'signIn',
            ...buildCustomDocument('mutation', 'SignIn', 'signIn', options.select, args, [
                {
                    name: 'input',
                    type: 'SignInInput!',
                },
            ], connectionFieldsMap, 'SignInPayload'),
        }),
        extendTokenExpires: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'ExtendTokenExpires',
            fieldName: 'extendTokenExpires',
            ...buildCustomDocument('mutation', 'ExtendTokenExpires', 'extendTokenExpires', options.select, args, [
                {
                    name: 'input',
                    type: 'ExtendTokenExpiresInput!',
                },
            ], connectionFieldsMap, 'ExtendTokenExpiresPayload'),
        }),
        createApiKey: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'CreateApiKey',
            fieldName: 'createApiKey',
            ...buildCustomDocument('mutation', 'CreateApiKey', 'createApiKey', options.select, args, [
                {
                    name: 'input',
                    type: 'CreateApiKeyInput!',
                },
            ], connectionFieldsMap, 'CreateApiKeyPayload'),
        }),
        forgotPassword: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'ForgotPassword',
            fieldName: 'forgotPassword',
            ...buildCustomDocument('mutation', 'ForgotPassword', 'forgotPassword', options.select, args, [
                {
                    name: 'input',
                    type: 'ForgotPasswordInput!',
                },
            ], connectionFieldsMap, 'ForgotPasswordPayload'),
        }),
        sendVerificationEmail: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'SendVerificationEmail',
            fieldName: 'sendVerificationEmail',
            ...buildCustomDocument('mutation', 'SendVerificationEmail', 'sendVerificationEmail', options.select, args, [
                {
                    name: 'input',
                    type: 'SendVerificationEmailInput!',
                },
            ], connectionFieldsMap, 'SendVerificationEmailPayload'),
        }),
        requestUploadUrl: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'RequestUploadUrl',
            fieldName: 'requestUploadUrl',
            ...buildCustomDocument('mutation', 'RequestUploadUrl', 'requestUploadUrl', options.select, args, [
                {
                    name: 'input',
                    type: 'RequestUploadUrlInput!',
                },
            ], connectionFieldsMap, 'RequestUploadUrlPayload'),
        }),
        confirmUpload: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'ConfirmUpload',
            fieldName: 'confirmUpload',
            ...buildCustomDocument('mutation', 'ConfirmUpload', 'confirmUpload', options.select, args, [
                {
                    name: 'input',
                    type: 'ConfirmUploadInput!',
                },
            ], connectionFieldsMap, 'ConfirmUploadPayload'),
        }),
        provisionBucket: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'ProvisionBucket',
            fieldName: 'provisionBucket',
            ...buildCustomDocument('mutation', 'ProvisionBucket', 'provisionBucket', options.select, args, [
                {
                    name: 'input',
                    type: 'ProvisionBucketInput!',
                },
            ], connectionFieldsMap, 'ProvisionBucketPayload'),
        }),
    };
}
