import { QueryBuilder, buildCustomDocument } from '../query-builder';
import { connectionFieldsMap } from '../input-types';
export function createMutationOperations(client) {
    return {
        validateFunctionGraph: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'ValidateFunctionGraph',
            fieldName: 'validateFunctionGraph',
            ...buildCustomDocument('mutation', 'ValidateFunctionGraph', 'validateFunctionGraph', options.select, args, [
                {
                    name: 'input',
                    type: 'ValidateFunctionGraphInput!',
                },
            ], connectionFieldsMap, 'ValidateFunctionGraphPayload'),
        }),
        infraInitEmptyRepo: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'InfraInitEmptyRepo',
            fieldName: 'infraInitEmptyRepo',
            ...buildCustomDocument('mutation', 'InfraInitEmptyRepo', 'infraInitEmptyRepo', options.select, args, [
                {
                    name: 'input',
                    type: 'InfraInitEmptyRepoInput!',
                },
            ], connectionFieldsMap, 'InfraInitEmptyRepoPayload'),
        }),
        initEmptyRepo: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'InitEmptyRepo',
            fieldName: 'initEmptyRepo',
            ...buildCustomDocument('mutation', 'InitEmptyRepo', 'initEmptyRepo', options.select, args, [
                {
                    name: 'input',
                    type: 'InitEmptyRepoInput!',
                },
            ], connectionFieldsMap, 'InitEmptyRepoPayload'),
        }),
        importDefinitions: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'ImportDefinitions',
            fieldName: 'importDefinitions',
            ...buildCustomDocument('mutation', 'ImportDefinitions', 'importDefinitions', options.select, args, [
                {
                    name: 'input',
                    type: 'ImportDefinitionsInput!',
                },
            ], connectionFieldsMap, 'ImportDefinitionsPayload'),
        }),
        infraSetDataAtPath: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'InfraSetDataAtPath',
            fieldName: 'infraSetDataAtPath',
            ...buildCustomDocument('mutation', 'InfraSetDataAtPath', 'infraSetDataAtPath', options.select, args, [
                {
                    name: 'input',
                    type: 'InfraSetDataAtPathInput!',
                },
            ], connectionFieldsMap, 'InfraSetDataAtPathPayload'),
        }),
        setDataAtPath: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'SetDataAtPath',
            fieldName: 'setDataAtPath',
            ...buildCustomDocument('mutation', 'SetDataAtPath', 'setDataAtPath', options.select, args, [
                {
                    name: 'input',
                    type: 'SetDataAtPathInput!',
                },
            ], connectionFieldsMap, 'SetDataAtPathPayload'),
        }),
        copyGraph: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'CopyGraph',
            fieldName: 'copyGraph',
            ...buildCustomDocument('mutation', 'CopyGraph', 'copyGraph', options.select, args, [
                {
                    name: 'input',
                    type: 'CopyGraphInput!',
                },
            ], connectionFieldsMap, 'CopyGraphPayload'),
        }),
        saveGraph: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'SaveGraph',
            fieldName: 'saveGraph',
            ...buildCustomDocument('mutation', 'SaveGraph', 'saveGraph', options.select, args, [
                {
                    name: 'input',
                    type: 'SaveGraphInput!',
                },
            ], connectionFieldsMap, 'SaveGraphPayload'),
        }),
        addEdgeAndSave: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'AddEdgeAndSave',
            fieldName: 'addEdgeAndSave',
            ...buildCustomDocument('mutation', 'AddEdgeAndSave', 'addEdgeAndSave', options.select, args, [
                {
                    name: 'input',
                    type: 'AddEdgeAndSaveInput!',
                },
            ], connectionFieldsMap, 'AddEdgeAndSavePayload'),
        }),
        addNodeAndSave: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'AddNodeAndSave',
            fieldName: 'addNodeAndSave',
            ...buildCustomDocument('mutation', 'AddNodeAndSave', 'addNodeAndSave', options.select, args, [
                {
                    name: 'input',
                    type: 'AddNodeAndSaveInput!',
                },
            ], connectionFieldsMap, 'AddNodeAndSavePayload'),
        }),
        importGraphJson: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'ImportGraphJson',
            fieldName: 'importGraphJson',
            ...buildCustomDocument('mutation', 'ImportGraphJson', 'importGraphJson', options.select, args, [
                {
                    name: 'input',
                    type: 'ImportGraphJsonInput!',
                },
            ], connectionFieldsMap, 'ImportGraphJsonPayload'),
        }),
        addEdge: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'AddEdge',
            fieldName: 'addEdge',
            ...buildCustomDocument('mutation', 'AddEdge', 'addEdge', options.select, args, [
                {
                    name: 'input',
                    type: 'AddEdgeInput!',
                },
            ], connectionFieldsMap, 'AddEdgePayload'),
        }),
        addNode: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'AddNode',
            fieldName: 'addNode',
            ...buildCustomDocument('mutation', 'AddNode', 'addNode', options.select, args, [
                {
                    name: 'input',
                    type: 'AddNodeInput!',
                },
            ], connectionFieldsMap, 'AddNodePayload'),
        }),
        infraInsertNodeAtPath: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'InfraInsertNodeAtPath',
            fieldName: 'infraInsertNodeAtPath',
            ...buildCustomDocument('mutation', 'InfraInsertNodeAtPath', 'infraInsertNodeAtPath', options.select, args, [
                {
                    name: 'input',
                    type: 'InfraInsertNodeAtPathInput!',
                },
            ], connectionFieldsMap, 'InfraInsertNodeAtPathPayload'),
        }),
        insertNodeAtPath: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'InsertNodeAtPath',
            fieldName: 'insertNodeAtPath',
            ...buildCustomDocument('mutation', 'InsertNodeAtPath', 'insertNodeAtPath', options.select, args, [
                {
                    name: 'input',
                    type: 'InsertNodeAtPathInput!',
                },
            ], connectionFieldsMap, 'InsertNodeAtPathPayload'),
        }),
        startExecution: (args, options) => new QueryBuilder({
            client,
            operation: 'mutation',
            operationName: 'StartExecution',
            fieldName: 'startExecution',
            ...buildCustomDocument('mutation', 'StartExecution', 'startExecution', options.select, args, [
                {
                    name: 'input',
                    type: 'StartExecutionInput!',
                },
            ], connectionFieldsMap, 'StartExecutionPayload'),
        }),
        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'),
        }),
    };
}
