import { buildSchema } from "graphql";

export default buildSchema(`
  schema {
    query: query_root
    mutation: mutation_root
    subscription: subscription_root
  }

  # columns and relationships of "allocations"
  type allocations {
    created_at: timestamptz!

    # An object relationship
    employee: employees!
    employeeid: uuid!
    hours: numeric!
    id: uuid!

    # An object relationship
    jobline: joblines!
    joblineid: uuid!
    updated_at: timestamptz!
  }

  # aggregated selection of "allocations"
  type allocations_aggregate {
    aggregate: allocations_aggregate_fields
    nodes: [allocations!]!
  }

  # aggregate fields of "allocations"
  type allocations_aggregate_fields {
    avg: allocations_avg_fields
    count(columns: [allocations_select_column!], distinct: Boolean): Int
    max: allocations_max_fields
    min: allocations_min_fields
    stddev: allocations_stddev_fields
    stddev_pop: allocations_stddev_pop_fields
    stddev_samp: allocations_stddev_samp_fields
    sum: allocations_sum_fields
    var_pop: allocations_var_pop_fields
    var_samp: allocations_var_samp_fields
    variance: allocations_variance_fields
  }

  # order by aggregate values of table "allocations"
  input allocations_aggregate_order_by {
    avg: allocations_avg_order_by
    count: order_by
    max: allocations_max_order_by
    min: allocations_min_order_by
    stddev: allocations_stddev_order_by
    stddev_pop: allocations_stddev_pop_order_by
    stddev_samp: allocations_stddev_samp_order_by
    sum: allocations_sum_order_by
    var_pop: allocations_var_pop_order_by
    var_samp: allocations_var_samp_order_by
    variance: allocations_variance_order_by
  }

  # input type for inserting array relation for remote table "allocations"
  input allocations_arr_rel_insert_input {
    data: [allocations_insert_input!]!
    on_conflict: allocations_on_conflict
  }

  # aggregate avg on columns
  type allocations_avg_fields {
    hours: Float
  }

  # order by avg() on columns of table "allocations"
  input allocations_avg_order_by {
    hours: order_by
  }

  # Boolean expression to filter rows from the table "allocations". All fields are combined with a logical 'AND'.
  input allocations_bool_exp {
    _and: [allocations_bool_exp]
    _not: allocations_bool_exp
    _or: [allocations_bool_exp]
    created_at: timestamptz_comparison_exp
    employee: employees_bool_exp
    employeeid: uuid_comparison_exp
    hours: numeric_comparison_exp
    id: uuid_comparison_exp
    jobline: joblines_bool_exp
    joblineid: uuid_comparison_exp
    updated_at: timestamptz_comparison_exp
  }

  # unique or primary key constraints on table "allocations"
  enum allocations_constraint {
    # unique or primary key constraint
    allocations_pkey
  }

  # input type for incrementing integer column in table "allocations"
  input allocations_inc_input {
    hours: numeric
  }

  # input type for inserting data into table "allocations"
  input allocations_insert_input {
    created_at: timestamptz
    employee: employees_obj_rel_insert_input
    employeeid: uuid
    hours: numeric
    id: uuid
    jobline: joblines_obj_rel_insert_input
    joblineid: uuid
    updated_at: timestamptz
  }

  # aggregate max on columns
  type allocations_max_fields {
    created_at: timestamptz
    employeeid: uuid
    hours: numeric
    id: uuid
    joblineid: uuid
    updated_at: timestamptz
  }

  # order by max() on columns of table "allocations"
  input allocations_max_order_by {
    created_at: order_by
    employeeid: order_by
    hours: order_by
    id: order_by
    joblineid: order_by
    updated_at: order_by
  }

  # aggregate min on columns
  type allocations_min_fields {
    created_at: timestamptz
    employeeid: uuid
    hours: numeric
    id: uuid
    joblineid: uuid
    updated_at: timestamptz
  }

  # order by min() on columns of table "allocations"
  input allocations_min_order_by {
    created_at: order_by
    employeeid: order_by
    hours: order_by
    id: order_by
    joblineid: order_by
    updated_at: order_by
  }

  # response of any mutation on the table "allocations"
  type allocations_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [allocations!]!
  }

  # input type for inserting object relation for remote table "allocations"
  input allocations_obj_rel_insert_input {
    data: allocations_insert_input!
    on_conflict: allocations_on_conflict
  }

  # on conflict condition type for table "allocations"
  input allocations_on_conflict {
    constraint: allocations_constraint!
    update_columns: [allocations_update_column!]!
    where: allocations_bool_exp
  }

  # ordering options when selecting data from "allocations"
  input allocations_order_by {
    created_at: order_by
    employee: employees_order_by
    employeeid: order_by
    hours: order_by
    id: order_by
    jobline: joblines_order_by
    joblineid: order_by
    updated_at: order_by
  }

  # primary key columns input for table: "allocations"
  input allocations_pk_columns_input {
    id: uuid!
  }

  # select columns of table "allocations"
  enum allocations_select_column {
    # column name
    created_at

    # column name
    employeeid

    # column name
    hours

    # column name
    id

    # column name
    joblineid

    # column name
    updated_at
  }

  # input type for updating data in table "allocations"
  input allocations_set_input {
    created_at: timestamptz
    employeeid: uuid
    hours: numeric
    id: uuid
    joblineid: uuid
    updated_at: timestamptz
  }

  # aggregate stddev on columns
  type allocations_stddev_fields {
    hours: Float
  }

  # order by stddev() on columns of table "allocations"
  input allocations_stddev_order_by {
    hours: order_by
  }

  # aggregate stddev_pop on columns
  type allocations_stddev_pop_fields {
    hours: Float
  }

  # order by stddev_pop() on columns of table "allocations"
  input allocations_stddev_pop_order_by {
    hours: order_by
  }

  # aggregate stddev_samp on columns
  type allocations_stddev_samp_fields {
    hours: Float
  }

  # order by stddev_samp() on columns of table "allocations"
  input allocations_stddev_samp_order_by {
    hours: order_by
  }

  # aggregate sum on columns
  type allocations_sum_fields {
    hours: numeric
  }

  # order by sum() on columns of table "allocations"
  input allocations_sum_order_by {
    hours: order_by
  }

  # update columns of table "allocations"
  enum allocations_update_column {
    # column name
    created_at

    # column name
    employeeid

    # column name
    hours

    # column name
    id

    # column name
    joblineid

    # column name
    updated_at
  }

  # aggregate var_pop on columns
  type allocations_var_pop_fields {
    hours: Float
  }

  # order by var_pop() on columns of table "allocations"
  input allocations_var_pop_order_by {
    hours: order_by
  }

  # aggregate var_samp on columns
  type allocations_var_samp_fields {
    hours: Float
  }

  # order by var_samp() on columns of table "allocations"
  input allocations_var_samp_order_by {
    hours: order_by
  }

  # aggregate variance on columns
  type allocations_variance_fields {
    hours: Float
  }

  # order by variance() on columns of table "allocations"
  input allocations_variance_order_by {
    hours: order_by
  }

  # columns and relationships of "appointments"
  type appointments {
    arrived: Boolean!
    block: Boolean!

    # An object relationship
    bodyshop: bodyshops!
    bodyshopid: uuid!
    canceled: Boolean!
    created_at: timestamptz!
    end: timestamptz!
    id: uuid!
    isintake: Boolean!

    # An object relationship
    job: jobs
    jobid: uuid
    start: timestamptz!
    title: String
    updated_at: timestamptz!
  }

  # aggregated selection of "appointments"
  type appointments_aggregate {
    aggregate: appointments_aggregate_fields
    nodes: [appointments!]!
  }

  # aggregate fields of "appointments"
  type appointments_aggregate_fields {
    count(columns: [appointments_select_column!], distinct: Boolean): Int
    max: appointments_max_fields
    min: appointments_min_fields
  }

  # order by aggregate values of table "appointments"
  input appointments_aggregate_order_by {
    count: order_by
    max: appointments_max_order_by
    min: appointments_min_order_by
  }

  # input type for inserting array relation for remote table "appointments"
  input appointments_arr_rel_insert_input {
    data: [appointments_insert_input!]!
    on_conflict: appointments_on_conflict
  }

  # Boolean expression to filter rows from the table "appointments". All fields are combined with a logical 'AND'.
  input appointments_bool_exp {
    _and: [appointments_bool_exp]
    _not: appointments_bool_exp
    _or: [appointments_bool_exp]
    arrived: Boolean_comparison_exp
    block: Boolean_comparison_exp
    bodyshop: bodyshops_bool_exp
    bodyshopid: uuid_comparison_exp
    canceled: Boolean_comparison_exp
    created_at: timestamptz_comparison_exp
    end: timestamptz_comparison_exp
    id: uuid_comparison_exp
    isintake: Boolean_comparison_exp
    job: jobs_bool_exp
    jobid: uuid_comparison_exp
    start: timestamptz_comparison_exp
    title: String_comparison_exp
    updated_at: timestamptz_comparison_exp
  }

  # unique or primary key constraints on table "appointments"
  enum appointments_constraint {
    # unique or primary key constraint
    appointments_pkey
  }

  # input type for inserting data into table "appointments"
  input appointments_insert_input {
    arrived: Boolean
    block: Boolean
    bodyshop: bodyshops_obj_rel_insert_input
    bodyshopid: uuid
    canceled: Boolean
    created_at: timestamptz
    end: timestamptz
    id: uuid
    isintake: Boolean
    job: jobs_obj_rel_insert_input
    jobid: uuid
    start: timestamptz
    title: String
    updated_at: timestamptz
  }

  # aggregate max on columns
  type appointments_max_fields {
    bodyshopid: uuid
    created_at: timestamptz
    end: timestamptz
    id: uuid
    jobid: uuid
    start: timestamptz
    title: String
    updated_at: timestamptz
  }

  # order by max() on columns of table "appointments"
  input appointments_max_order_by {
    bodyshopid: order_by
    created_at: order_by
    end: order_by
    id: order_by
    jobid: order_by
    start: order_by
    title: order_by
    updated_at: order_by
  }

  # aggregate min on columns
  type appointments_min_fields {
    bodyshopid: uuid
    created_at: timestamptz
    end: timestamptz
    id: uuid
    jobid: uuid
    start: timestamptz
    title: String
    updated_at: timestamptz
  }

  # order by min() on columns of table "appointments"
  input appointments_min_order_by {
    bodyshopid: order_by
    created_at: order_by
    end: order_by
    id: order_by
    jobid: order_by
    start: order_by
    title: order_by
    updated_at: order_by
  }

  # response of any mutation on the table "appointments"
  type appointments_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [appointments!]!
  }

  # input type for inserting object relation for remote table "appointments"
  input appointments_obj_rel_insert_input {
    data: appointments_insert_input!
    on_conflict: appointments_on_conflict
  }

  # on conflict condition type for table "appointments"
  input appointments_on_conflict {
    constraint: appointments_constraint!
    update_columns: [appointments_update_column!]!
    where: appointments_bool_exp
  }

  # ordering options when selecting data from "appointments"
  input appointments_order_by {
    arrived: order_by
    block: order_by
    bodyshop: bodyshops_order_by
    bodyshopid: order_by
    canceled: order_by
    created_at: order_by
    end: order_by
    id: order_by
    isintake: order_by
    job: jobs_order_by
    jobid: order_by
    start: order_by
    title: order_by
    updated_at: order_by
  }

  # primary key columns input for table: "appointments"
  input appointments_pk_columns_input {
    id: uuid!
  }

  # select columns of table "appointments"
  enum appointments_select_column {
    # column name
    arrived

    # column name
    block

    # column name
    bodyshopid

    # column name
    canceled

    # column name
    created_at

    # column name
    end

    # column name
    id

    # column name
    isintake

    # column name
    jobid

    # column name
    start

    # column name
    title

    # column name
    updated_at
  }

  # input type for updating data in table "appointments"
  input appointments_set_input {
    arrived: Boolean
    block: Boolean
    bodyshopid: uuid
    canceled: Boolean
    created_at: timestamptz
    end: timestamptz
    id: uuid
    isintake: Boolean
    jobid: uuid
    start: timestamptz
    title: String
    updated_at: timestamptz
  }

  # update columns of table "appointments"
  enum appointments_update_column {
    # column name
    arrived

    # column name
    block

    # column name
    bodyshopid

    # column name
    canceled

    # column name
    created_at

    # column name
    end

    # column name
    id

    # column name
    isintake

    # column name
    jobid

    # column name
    start

    # column name
    title

    # column name
    updated_at
  }

  # columns and relationships of "associations"
  type associations {
    active: Boolean!
    authlevel: Int!

    # An object relationship
    bodyshop: bodyshops!
    id: uuid!
    shopid: uuid!

    # An object relationship
    user: users!
    useremail: String!
  }

  # aggregated selection of "associations"
  type associations_aggregate {
    aggregate: associations_aggregate_fields
    nodes: [associations!]!
  }

  # aggregate fields of "associations"
  type associations_aggregate_fields {
    avg: associations_avg_fields
    count(columns: [associations_select_column!], distinct: Boolean): Int
    max: associations_max_fields
    min: associations_min_fields
    stddev: associations_stddev_fields
    stddev_pop: associations_stddev_pop_fields
    stddev_samp: associations_stddev_samp_fields
    sum: associations_sum_fields
    var_pop: associations_var_pop_fields
    var_samp: associations_var_samp_fields
    variance: associations_variance_fields
  }

  # order by aggregate values of table "associations"
  input associations_aggregate_order_by {
    avg: associations_avg_order_by
    count: order_by
    max: associations_max_order_by
    min: associations_min_order_by
    stddev: associations_stddev_order_by
    stddev_pop: associations_stddev_pop_order_by
    stddev_samp: associations_stddev_samp_order_by
    sum: associations_sum_order_by
    var_pop: associations_var_pop_order_by
    var_samp: associations_var_samp_order_by
    variance: associations_variance_order_by
  }

  # input type for inserting array relation for remote table "associations"
  input associations_arr_rel_insert_input {
    data: [associations_insert_input!]!
    on_conflict: associations_on_conflict
  }

  # aggregate avg on columns
  type associations_avg_fields {
    authlevel: Float
  }

  # order by avg() on columns of table "associations"
  input associations_avg_order_by {
    authlevel: order_by
  }

  # Boolean expression to filter rows from the table "associations". All fields are combined with a logical 'AND'.
  input associations_bool_exp {
    _and: [associations_bool_exp]
    _not: associations_bool_exp
    _or: [associations_bool_exp]
    active: Boolean_comparison_exp
    authlevel: Int_comparison_exp
    bodyshop: bodyshops_bool_exp
    id: uuid_comparison_exp
    shopid: uuid_comparison_exp
    user: users_bool_exp
    useremail: String_comparison_exp
  }

  # unique or primary key constraints on table "associations"
  enum associations_constraint {
    # unique or primary key constraint
    associations_pkey
  }

  # input type for incrementing integer column in table "associations"
  input associations_inc_input {
    authlevel: Int
  }

  # input type for inserting data into table "associations"
  input associations_insert_input {
    active: Boolean
    authlevel: Int
    bodyshop: bodyshops_obj_rel_insert_input
    id: uuid
    shopid: uuid
    user: users_obj_rel_insert_input
    useremail: String
  }

  # aggregate max on columns
  type associations_max_fields {
    authlevel: Int
    id: uuid
    shopid: uuid
    useremail: String
  }

  # order by max() on columns of table "associations"
  input associations_max_order_by {
    authlevel: order_by
    id: order_by
    shopid: order_by
    useremail: order_by
  }

  # aggregate min on columns
  type associations_min_fields {
    authlevel: Int
    id: uuid
    shopid: uuid
    useremail: String
  }

  # order by min() on columns of table "associations"
  input associations_min_order_by {
    authlevel: order_by
    id: order_by
    shopid: order_by
    useremail: order_by
  }

  # response of any mutation on the table "associations"
  type associations_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [associations!]!
  }

  # input type for inserting object relation for remote table "associations"
  input associations_obj_rel_insert_input {
    data: associations_insert_input!
    on_conflict: associations_on_conflict
  }

  # on conflict condition type for table "associations"
  input associations_on_conflict {
    constraint: associations_constraint!
    update_columns: [associations_update_column!]!
    where: associations_bool_exp
  }

  # ordering options when selecting data from "associations"
  input associations_order_by {
    active: order_by
    authlevel: order_by
    bodyshop: bodyshops_order_by
    id: order_by
    shopid: order_by
    user: users_order_by
    useremail: order_by
  }

  # primary key columns input for table: "associations"
  input associations_pk_columns_input {
    id: uuid!
  }

  # select columns of table "associations"
  enum associations_select_column {
    # column name
    active

    # column name
    authlevel

    # column name
    id

    # column name
    shopid

    # column name
    useremail
  }

  # input type for updating data in table "associations"
  input associations_set_input {
    active: Boolean
    authlevel: Int
    id: uuid
    shopid: uuid
    useremail: String
  }

  # aggregate stddev on columns
  type associations_stddev_fields {
    authlevel: Float
  }

  # order by stddev() on columns of table "associations"
  input associations_stddev_order_by {
    authlevel: order_by
  }

  # aggregate stddev_pop on columns
  type associations_stddev_pop_fields {
    authlevel: Float
  }

  # order by stddev_pop() on columns of table "associations"
  input associations_stddev_pop_order_by {
    authlevel: order_by
  }

  # aggregate stddev_samp on columns
  type associations_stddev_samp_fields {
    authlevel: Float
  }

  # order by stddev_samp() on columns of table "associations"
  input associations_stddev_samp_order_by {
    authlevel: order_by
  }

  # aggregate sum on columns
  type associations_sum_fields {
    authlevel: Int
  }

  # order by sum() on columns of table "associations"
  input associations_sum_order_by {
    authlevel: order_by
  }

  # update columns of table "associations"
  enum associations_update_column {
    # column name
    active

    # column name
    authlevel

    # column name
    id

    # column name
    shopid

    # column name
    useremail
  }

  # aggregate var_pop on columns
  type associations_var_pop_fields {
    authlevel: Float
  }

  # order by var_pop() on columns of table "associations"
  input associations_var_pop_order_by {
    authlevel: order_by
  }

  # aggregate var_samp on columns
  type associations_var_samp_fields {
    authlevel: Float
  }

  # order by var_samp() on columns of table "associations"
  input associations_var_samp_order_by {
    authlevel: order_by
  }

  # aggregate variance on columns
  type associations_variance_fields {
    authlevel: Float
  }

  # order by variance() on columns of table "associations"
  input associations_variance_order_by {
    authlevel: order_by
  }

  # columns and relationships of "audit_trail"
  type audit_trail {
    # An object relationship
    bodyshop: bodyshops
    bodyshopid: uuid
    created: timestamp
    id: Int!
    new_val(
      # JSON select path
      path: String
    ): json
    old_val(
      # JSON select path
      path: String
    ): json
    operation: String
    recordid: uuid
    schemaname: String
    tabname: String

    # An object relationship
    user: users
    useremail: String
  }

  # aggregated selection of "audit_trail"
  type audit_trail_aggregate {
    aggregate: audit_trail_aggregate_fields
    nodes: [audit_trail!]!
  }

  # aggregate fields of "audit_trail"
  type audit_trail_aggregate_fields {
    avg: audit_trail_avg_fields
    count(columns: [audit_trail_select_column!], distinct: Boolean): Int
    max: audit_trail_max_fields
    min: audit_trail_min_fields
    stddev: audit_trail_stddev_fields
    stddev_pop: audit_trail_stddev_pop_fields
    stddev_samp: audit_trail_stddev_samp_fields
    sum: audit_trail_sum_fields
    var_pop: audit_trail_var_pop_fields
    var_samp: audit_trail_var_samp_fields
    variance: audit_trail_variance_fields
  }

  # order by aggregate values of table "audit_trail"
  input audit_trail_aggregate_order_by {
    avg: audit_trail_avg_order_by
    count: order_by
    max: audit_trail_max_order_by
    min: audit_trail_min_order_by
    stddev: audit_trail_stddev_order_by
    stddev_pop: audit_trail_stddev_pop_order_by
    stddev_samp: audit_trail_stddev_samp_order_by
    sum: audit_trail_sum_order_by
    var_pop: audit_trail_var_pop_order_by
    var_samp: audit_trail_var_samp_order_by
    variance: audit_trail_variance_order_by
  }

  # input type for inserting array relation for remote table "audit_trail"
  input audit_trail_arr_rel_insert_input {
    data: [audit_trail_insert_input!]!
    on_conflict: audit_trail_on_conflict
  }

  # aggregate avg on columns
  type audit_trail_avg_fields {
    id: Float
  }

  # order by avg() on columns of table "audit_trail"
  input audit_trail_avg_order_by {
    id: order_by
  }

  # Boolean expression to filter rows from the table "audit_trail". All fields are combined with a logical 'AND'.
  input audit_trail_bool_exp {
    _and: [audit_trail_bool_exp]
    _not: audit_trail_bool_exp
    _or: [audit_trail_bool_exp]
    bodyshop: bodyshops_bool_exp
    bodyshopid: uuid_comparison_exp
    created: timestamp_comparison_exp
    id: Int_comparison_exp
    new_val: json_comparison_exp
    old_val: json_comparison_exp
    operation: String_comparison_exp
    recordid: uuid_comparison_exp
    schemaname: String_comparison_exp
    tabname: String_comparison_exp
    user: users_bool_exp
    useremail: String_comparison_exp
  }

  # unique or primary key constraints on table "audit_trail"
  enum audit_trail_constraint {
    # unique or primary key constraint
    audit_trail_pkey
  }

  # input type for incrementing integer column in table "audit_trail"
  input audit_trail_inc_input {
    id: Int
  }

  # input type for inserting data into table "audit_trail"
  input audit_trail_insert_input {
    bodyshop: bodyshops_obj_rel_insert_input
    bodyshopid: uuid
    created: timestamp
    id: Int
    new_val: json
    old_val: json
    operation: String
    recordid: uuid
    schemaname: String
    tabname: String
    user: users_obj_rel_insert_input
    useremail: String
  }

  # aggregate max on columns
  type audit_trail_max_fields {
    bodyshopid: uuid
    created: timestamp
    id: Int
    operation: String
    recordid: uuid
    schemaname: String
    tabname: String
    useremail: String
  }

  # order by max() on columns of table "audit_trail"
  input audit_trail_max_order_by {
    bodyshopid: order_by
    created: order_by
    id: order_by
    operation: order_by
    recordid: order_by
    schemaname: order_by
    tabname: order_by
    useremail: order_by
  }

  # aggregate min on columns
  type audit_trail_min_fields {
    bodyshopid: uuid
    created: timestamp
    id: Int
    operation: String
    recordid: uuid
    schemaname: String
    tabname: String
    useremail: String
  }

  # order by min() on columns of table "audit_trail"
  input audit_trail_min_order_by {
    bodyshopid: order_by
    created: order_by
    id: order_by
    operation: order_by
    recordid: order_by
    schemaname: order_by
    tabname: order_by
    useremail: order_by
  }

  # response of any mutation on the table "audit_trail"
  type audit_trail_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [audit_trail!]!
  }

  # input type for inserting object relation for remote table "audit_trail"
  input audit_trail_obj_rel_insert_input {
    data: audit_trail_insert_input!
    on_conflict: audit_trail_on_conflict
  }

  # on conflict condition type for table "audit_trail"
  input audit_trail_on_conflict {
    constraint: audit_trail_constraint!
    update_columns: [audit_trail_update_column!]!
    where: audit_trail_bool_exp
  }

  # ordering options when selecting data from "audit_trail"
  input audit_trail_order_by {
    bodyshop: bodyshops_order_by
    bodyshopid: order_by
    created: order_by
    id: order_by
    new_val: order_by
    old_val: order_by
    operation: order_by
    recordid: order_by
    schemaname: order_by
    tabname: order_by
    user: users_order_by
    useremail: order_by
  }

  # primary key columns input for table: "audit_trail"
  input audit_trail_pk_columns_input {
    id: Int!
  }

  # select columns of table "audit_trail"
  enum audit_trail_select_column {
    # column name
    bodyshopid

    # column name
    created

    # column name
    id

    # column name
    new_val

    # column name
    old_val

    # column name
    operation

    # column name
    recordid

    # column name
    schemaname

    # column name
    tabname

    # column name
    useremail
  }

  # input type for updating data in table "audit_trail"
  input audit_trail_set_input {
    bodyshopid: uuid
    created: timestamp
    id: Int
    new_val: json
    old_val: json
    operation: String
    recordid: uuid
    schemaname: String
    tabname: String
    useremail: String
  }

  # aggregate stddev on columns
  type audit_trail_stddev_fields {
    id: Float
  }

  # order by stddev() on columns of table "audit_trail"
  input audit_trail_stddev_order_by {
    id: order_by
  }

  # aggregate stddev_pop on columns
  type audit_trail_stddev_pop_fields {
    id: Float
  }

  # order by stddev_pop() on columns of table "audit_trail"
  input audit_trail_stddev_pop_order_by {
    id: order_by
  }

  # aggregate stddev_samp on columns
  type audit_trail_stddev_samp_fields {
    id: Float
  }

  # order by stddev_samp() on columns of table "audit_trail"
  input audit_trail_stddev_samp_order_by {
    id: order_by
  }

  # aggregate sum on columns
  type audit_trail_sum_fields {
    id: Int
  }

  # order by sum() on columns of table "audit_trail"
  input audit_trail_sum_order_by {
    id: order_by
  }

  # update columns of table "audit_trail"
  enum audit_trail_update_column {
    # column name
    bodyshopid

    # column name
    created

    # column name
    id

    # column name
    new_val

    # column name
    old_val

    # column name
    operation

    # column name
    recordid

    # column name
    schemaname

    # column name
    tabname

    # column name
    useremail
  }

  # aggregate var_pop on columns
  type audit_trail_var_pop_fields {
    id: Float
  }

  # order by var_pop() on columns of table "audit_trail"
  input audit_trail_var_pop_order_by {
    id: order_by
  }

  # aggregate var_samp on columns
  type audit_trail_var_samp_fields {
    id: Float
  }

  # order by var_samp() on columns of table "audit_trail"
  input audit_trail_var_samp_order_by {
    id: order_by
  }

  # aggregate variance on columns
  type audit_trail_variance_fields {
    id: Float
  }

  # order by variance() on columns of table "audit_trail"
  input audit_trail_variance_order_by {
    id: order_by
  }

  # columns and relationships of "available_jobs"
  type available_jobs {
    # An object relationship
    bodyshop: bodyshops!
    bodyshopid: uuid!
    cieca_id: String!
    clm_amt: numeric
    clm_no: String
    created_at: timestamptz!
    est_data(
      # JSON select path
      path: String
    ): jsonb!
    id: uuid!
    issupplement: Boolean!

    # An object relationship
    job: jobs
    jobid: uuid
    ownr_name: String
    source_system: String
    supplement_number: Int
    updated_at: timestamptz!
    uploaded_by: String!
    vehicle_info: String
  }

  # aggregated selection of "available_jobs"
  type available_jobs_aggregate {
    aggregate: available_jobs_aggregate_fields
    nodes: [available_jobs!]!
  }

  # aggregate fields of "available_jobs"
  type available_jobs_aggregate_fields {
    avg: available_jobs_avg_fields
    count(columns: [available_jobs_select_column!], distinct: Boolean): Int
    max: available_jobs_max_fields
    min: available_jobs_min_fields
    stddev: available_jobs_stddev_fields
    stddev_pop: available_jobs_stddev_pop_fields
    stddev_samp: available_jobs_stddev_samp_fields
    sum: available_jobs_sum_fields
    var_pop: available_jobs_var_pop_fields
    var_samp: available_jobs_var_samp_fields
    variance: available_jobs_variance_fields
  }

  # order by aggregate values of table "available_jobs"
  input available_jobs_aggregate_order_by {
    avg: available_jobs_avg_order_by
    count: order_by
    max: available_jobs_max_order_by
    min: available_jobs_min_order_by
    stddev: available_jobs_stddev_order_by
    stddev_pop: available_jobs_stddev_pop_order_by
    stddev_samp: available_jobs_stddev_samp_order_by
    sum: available_jobs_sum_order_by
    var_pop: available_jobs_var_pop_order_by
    var_samp: available_jobs_var_samp_order_by
    variance: available_jobs_variance_order_by
  }

  # append existing jsonb value of filtered columns with new jsonb value
  input available_jobs_append_input {
    est_data: jsonb
  }

  # input type for inserting array relation for remote table "available_jobs"
  input available_jobs_arr_rel_insert_input {
    data: [available_jobs_insert_input!]!
    on_conflict: available_jobs_on_conflict
  }

  # aggregate avg on columns
  type available_jobs_avg_fields {
    clm_amt: Float
    supplement_number: Float
  }

  # order by avg() on columns of table "available_jobs"
  input available_jobs_avg_order_by {
    clm_amt: order_by
    supplement_number: order_by
  }

  # Boolean expression to filter rows from the table "available_jobs". All fields are combined with a logical 'AND'.
  input available_jobs_bool_exp {
    _and: [available_jobs_bool_exp]
    _not: available_jobs_bool_exp
    _or: [available_jobs_bool_exp]
    bodyshop: bodyshops_bool_exp
    bodyshopid: uuid_comparison_exp
    cieca_id: String_comparison_exp
    clm_amt: numeric_comparison_exp
    clm_no: String_comparison_exp
    created_at: timestamptz_comparison_exp
    est_data: jsonb_comparison_exp
    id: uuid_comparison_exp
    issupplement: Boolean_comparison_exp
    job: jobs_bool_exp
    jobid: uuid_comparison_exp
    ownr_name: String_comparison_exp
    source_system: String_comparison_exp
    supplement_number: Int_comparison_exp
    updated_at: timestamptz_comparison_exp
    uploaded_by: String_comparison_exp
    vehicle_info: String_comparison_exp
  }

  # unique or primary key constraints on table "available_jobs"
  enum available_jobs_constraint {
    # unique or primary key constraint
    available_jobs_clm_no_bodyshopid_key

    # unique or primary key constraint
    available_jobs_pkey
  }

  # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
  input available_jobs_delete_at_path_input {
    est_data: [String]
  }

  # delete the array element with specified index (negative integers count from the
  # end). throws an error if top level container is not an array
  input available_jobs_delete_elem_input {
    est_data: Int
  }

  # delete key/value pair or string element. key/value pairs are matched based on their key value
  input available_jobs_delete_key_input {
    est_data: String
  }

  # input type for incrementing integer column in table "available_jobs"
  input available_jobs_inc_input {
    clm_amt: numeric
    supplement_number: Int
  }

  # input type for inserting data into table "available_jobs"
  input available_jobs_insert_input {
    bodyshop: bodyshops_obj_rel_insert_input
    bodyshopid: uuid
    cieca_id: String
    clm_amt: numeric
    clm_no: String
    created_at: timestamptz
    est_data: jsonb
    id: uuid
    issupplement: Boolean
    job: jobs_obj_rel_insert_input
    jobid: uuid
    ownr_name: String
    source_system: String
    supplement_number: Int
    updated_at: timestamptz
    uploaded_by: String
    vehicle_info: String
  }

  # aggregate max on columns
  type available_jobs_max_fields {
    bodyshopid: uuid
    cieca_id: String
    clm_amt: numeric
    clm_no: String
    created_at: timestamptz
    id: uuid
    jobid: uuid
    ownr_name: String
    source_system: String
    supplement_number: Int
    updated_at: timestamptz
    uploaded_by: String
    vehicle_info: String
  }

  # order by max() on columns of table "available_jobs"
  input available_jobs_max_order_by {
    bodyshopid: order_by
    cieca_id: order_by
    clm_amt: order_by
    clm_no: order_by
    created_at: order_by
    id: order_by
    jobid: order_by
    ownr_name: order_by
    source_system: order_by
    supplement_number: order_by
    updated_at: order_by
    uploaded_by: order_by
    vehicle_info: order_by
  }

  # aggregate min on columns
  type available_jobs_min_fields {
    bodyshopid: uuid
    cieca_id: String
    clm_amt: numeric
    clm_no: String
    created_at: timestamptz
    id: uuid
    jobid: uuid
    ownr_name: String
    source_system: String
    supplement_number: Int
    updated_at: timestamptz
    uploaded_by: String
    vehicle_info: String
  }

  # order by min() on columns of table "available_jobs"
  input available_jobs_min_order_by {
    bodyshopid: order_by
    cieca_id: order_by
    clm_amt: order_by
    clm_no: order_by
    created_at: order_by
    id: order_by
    jobid: order_by
    ownr_name: order_by
    source_system: order_by
    supplement_number: order_by
    updated_at: order_by
    uploaded_by: order_by
    vehicle_info: order_by
  }

  # response of any mutation on the table "available_jobs"
  type available_jobs_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [available_jobs!]!
  }

  # input type for inserting object relation for remote table "available_jobs"
  input available_jobs_obj_rel_insert_input {
    data: available_jobs_insert_input!
    on_conflict: available_jobs_on_conflict
  }

  # on conflict condition type for table "available_jobs"
  input available_jobs_on_conflict {
    constraint: available_jobs_constraint!
    update_columns: [available_jobs_update_column!]!
    where: available_jobs_bool_exp
  }

  # ordering options when selecting data from "available_jobs"
  input available_jobs_order_by {
    bodyshop: bodyshops_order_by
    bodyshopid: order_by
    cieca_id: order_by
    clm_amt: order_by
    clm_no: order_by
    created_at: order_by
    est_data: order_by
    id: order_by
    issupplement: order_by
    job: jobs_order_by
    jobid: order_by
    ownr_name: order_by
    source_system: order_by
    supplement_number: order_by
    updated_at: order_by
    uploaded_by: order_by
    vehicle_info: order_by
  }

  # primary key columns input for table: "available_jobs"
  input available_jobs_pk_columns_input {
    id: uuid!
  }

  # prepend existing jsonb value of filtered columns with new jsonb value
  input available_jobs_prepend_input {
    est_data: jsonb
  }

  # select columns of table "available_jobs"
  enum available_jobs_select_column {
    # column name
    bodyshopid

    # column name
    cieca_id

    # column name
    clm_amt

    # column name
    clm_no

    # column name
    created_at

    # column name
    est_data

    # column name
    id

    # column name
    issupplement

    # column name
    jobid

    # column name
    ownr_name

    # column name
    source_system

    # column name
    supplement_number

    # column name
    updated_at

    # column name
    uploaded_by

    # column name
    vehicle_info
  }

  # input type for updating data in table "available_jobs"
  input available_jobs_set_input {
    bodyshopid: uuid
    cieca_id: String
    clm_amt: numeric
    clm_no: String
    created_at: timestamptz
    est_data: jsonb
    id: uuid
    issupplement: Boolean
    jobid: uuid
    ownr_name: String
    source_system: String
    supplement_number: Int
    updated_at: timestamptz
    uploaded_by: String
    vehicle_info: String
  }

  # aggregate stddev on columns
  type available_jobs_stddev_fields {
    clm_amt: Float
    supplement_number: Float
  }

  # order by stddev() on columns of table "available_jobs"
  input available_jobs_stddev_order_by {
    clm_amt: order_by
    supplement_number: order_by
  }

  # aggregate stddev_pop on columns
  type available_jobs_stddev_pop_fields {
    clm_amt: Float
    supplement_number: Float
  }

  # order by stddev_pop() on columns of table "available_jobs"
  input available_jobs_stddev_pop_order_by {
    clm_amt: order_by
    supplement_number: order_by
  }

  # aggregate stddev_samp on columns
  type available_jobs_stddev_samp_fields {
    clm_amt: Float
    supplement_number: Float
  }

  # order by stddev_samp() on columns of table "available_jobs"
  input available_jobs_stddev_samp_order_by {
    clm_amt: order_by
    supplement_number: order_by
  }

  # aggregate sum on columns
  type available_jobs_sum_fields {
    clm_amt: numeric
    supplement_number: Int
  }

  # order by sum() on columns of table "available_jobs"
  input available_jobs_sum_order_by {
    clm_amt: order_by
    supplement_number: order_by
  }

  # update columns of table "available_jobs"
  enum available_jobs_update_column {
    # column name
    bodyshopid

    # column name
    cieca_id

    # column name
    clm_amt

    # column name
    clm_no

    # column name
    created_at

    # column name
    est_data

    # column name
    id

    # column name
    issupplement

    # column name
    jobid

    # column name
    ownr_name

    # column name
    source_system

    # column name
    supplement_number

    # column name
    updated_at

    # column name
    uploaded_by

    # column name
    vehicle_info
  }

  # aggregate var_pop on columns
  type available_jobs_var_pop_fields {
    clm_amt: Float
    supplement_number: Float
  }

  # order by var_pop() on columns of table "available_jobs"
  input available_jobs_var_pop_order_by {
    clm_amt: order_by
    supplement_number: order_by
  }

  # aggregate var_samp on columns
  type available_jobs_var_samp_fields {
    clm_amt: Float
    supplement_number: Float
  }

  # order by var_samp() on columns of table "available_jobs"
  input available_jobs_var_samp_order_by {
    clm_amt: order_by
    supplement_number: order_by
  }

  # aggregate variance on columns
  type available_jobs_variance_fields {
    clm_amt: Float
    supplement_number: Float
  }

  # order by variance() on columns of table "available_jobs"
  input available_jobs_variance_order_by {
    clm_amt: order_by
    supplement_number: order_by
  }

  scalar bigint

  # expression to compare columns of type bigint. All fields are combined with logical 'AND'.
  input bigint_comparison_exp {
    _eq: bigint
    _gt: bigint
    _gte: bigint
    _in: [bigint!]
    _is_null: Boolean
    _lt: bigint
    _lte: bigint
    _neq: bigint
    _nin: [bigint!]
  }

  # columns and relationships of "bodyshops"
  type bodyshops {
    accountingconfig(
      # JSON select path
      path: String
    ): jsonb
    address1: String
    address2: String

    # An array relationship
    appointments(
      # distinct select on columns
      distinct_on: [appointments_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [appointments_order_by!]

      # filter the rows returned
      where: appointments_bool_exp
    ): [appointments!]!

    # An aggregated array relationship
    appointments_aggregate(
      # distinct select on columns
      distinct_on: [appointments_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [appointments_order_by!]

      # filter the rows returned
      where: appointments_bool_exp
    ): appointments_aggregate!
    appt_length: Int!

    # An array relationship
    associations(
      # distinct select on columns
      distinct_on: [associations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [associations_order_by!]

      # filter the rows returned
      where: associations_bool_exp
    ): [associations!]!

    # An aggregated array relationship
    associations_aggregate(
      # distinct select on columns
      distinct_on: [associations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [associations_order_by!]

      # filter the rows returned
      where: associations_bool_exp
    ): associations_aggregate!

    # An array relationship
    audit_trails(
      # distinct select on columns
      distinct_on: [audit_trail_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [audit_trail_order_by!]

      # filter the rows returned
      where: audit_trail_bool_exp
    ): [audit_trail!]!

    # An aggregated array relationship
    audit_trails_aggregate(
      # distinct select on columns
      distinct_on: [audit_trail_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [audit_trail_order_by!]

      # filter the rows returned
      where: audit_trail_bool_exp
    ): audit_trail_aggregate!

    # An array relationship
    available_jobs(
      # distinct select on columns
      distinct_on: [available_jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [available_jobs_order_by!]

      # filter the rows returned
      where: available_jobs_bool_exp
    ): [available_jobs!]!

    # An aggregated array relationship
    available_jobs_aggregate(
      # distinct select on columns
      distinct_on: [available_jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [available_jobs_order_by!]

      # filter the rows returned
      where: available_jobs_bool_exp
    ): available_jobs_aggregate!
    city: String

    # An array relationship
    conversations(
      # distinct select on columns
      distinct_on: [conversations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [conversations_order_by!]

      # filter the rows returned
      where: conversations_bool_exp
    ): [conversations!]!

    # An aggregated array relationship
    conversations_aggregate(
      # distinct select on columns
      distinct_on: [conversations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [conversations_order_by!]

      # filter the rows returned
      where: conversations_bool_exp
    ): conversations_aggregate!

    # An array relationship
    counters(
      # distinct select on columns
      distinct_on: [counters_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [counters_order_by!]

      # filter the rows returned
      where: counters_bool_exp
    ): [counters!]!

    # An aggregated array relationship
    counters_aggregate(
      # distinct select on columns
      distinct_on: [counters_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [counters_order_by!]

      # filter the rows returned
      where: counters_bool_exp
    ): counters_aggregate!
    country: String

    # An array relationship
    courtesycars(
      # distinct select on columns
      distinct_on: [courtesycars_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [courtesycars_order_by!]

      # filter the rows returned
      where: courtesycars_bool_exp
    ): [courtesycars!]!

    # An aggregated array relationship
    courtesycars_aggregate(
      # distinct select on columns
      distinct_on: [courtesycars_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [courtesycars_order_by!]

      # filter the rows returned
      where: courtesycars_bool_exp
    ): courtesycars_aggregate!
    created_at: timestamptz

    # An array relationship
    csiinvites(
      # distinct select on columns
      distinct_on: [csi_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [csi_order_by!]

      # filter the rows returned
      where: csi_bool_exp
    ): [csi!]!

    # An aggregated array relationship
    csiinvites_aggregate(
      # distinct select on columns
      distinct_on: [csi_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [csi_order_by!]

      # filter the rows returned
      where: csi_bool_exp
    ): csi_aggregate!

    # An array relationship
    csiquestions(
      # distinct select on columns
      distinct_on: [csiquestions_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [csiquestions_order_by!]

      # filter the rows returned
      where: csiquestions_bool_exp
    ): [csiquestions!]!

    # An aggregated array relationship
    csiquestions_aggregate(
      # distinct select on columns
      distinct_on: [csiquestions_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [csiquestions_order_by!]

      # filter the rows returned
      where: csiquestions_bool_exp
    ): csiquestions_aggregate!
    deliverchecklist(
      # JSON select path
      path: String
    ): jsonb
    email: String

    # An array relationship
    employees(
      # distinct select on columns
      distinct_on: [employees_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [employees_order_by!]

      # filter the rows returned
      where: employees_bool_exp
    ): [employees!]!

    # An aggregated array relationship
    employees_aggregate(
      # distinct select on columns
      distinct_on: [employees_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [employees_order_by!]

      # filter the rows returned
      where: employees_bool_exp
    ): employees_aggregate!
    enforce_class: Boolean!
    federal_tax_id: String
    id: uuid!
    inhousevendorid: uuid
    insurance_vendor_id: String
    intakechecklist(
      # JSON select path
      path: String
    ): jsonb
    invoice_tax_rates(
      # JSON select path
      path: String
    ): jsonb

    # An array relationship
    jobs(
      # distinct select on columns
      distinct_on: [jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [jobs_order_by!]

      # filter the rows returned
      where: jobs_bool_exp
    ): [jobs!]!

    # An aggregated array relationship
    jobs_aggregate(
      # distinct select on columns
      distinct_on: [jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [jobs_order_by!]

      # filter the rows returned
      where: jobs_bool_exp
    ): jobs_aggregate!
    logo_img_path: String
    md_categories(
      # JSON select path
      path: String
    ): jsonb
    md_classes(
      # JSON select path
      path: String
    ): jsonb
    md_ins_cos(
      # JSON select path
      path: String
    ): jsonb
    md_labor_rates(
      # JSON select path
      path: String
    ): jsonb
    md_messaging_presets(
      # JSON select path
      path: String
    ): jsonb!
    md_notes_presets(
      # JSON select path
      path: String
    ): jsonb!
    md_order_statuses(
      # JSON select path
      path: String
    ): jsonb
    md_parts_locations(
      # JSON select path
      path: String
    ): jsonb
    md_rbac(
      # JSON select path
      path: String
    ): jsonb
    md_referral_sources(
      # JSON select path
      path: String
    ): jsonb!
    md_responsibility_centers(
      # JSON select path
      path: String
    ): jsonb
    md_ro_statuses(
      # JSON select path
      path: String
    ): jsonb
    messagingservicesid: String

    # An array relationship
    owners(
      # distinct select on columns
      distinct_on: [owners_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [owners_order_by!]

      # filter the rows returned
      where: owners_bool_exp
    ): [owners!]!

    # An aggregated array relationship
    owners_aggregate(
      # distinct select on columns
      distinct_on: [owners_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [owners_order_by!]

      # filter the rows returned
      where: owners_bool_exp
    ): owners_aggregate!
    prodtargethrs: numeric!
    production_config(
      # JSON select path
      path: String
    ): jsonb
    region_config: String!
    scoreboard_target(
      # JSON select path
      path: String
    ): jsonb
    shopname: String!
    shoprates(
      # JSON select path
      path: String
    ): jsonb
    speedprint(
      # JSON select path
      path: String
    ): jsonb
    ssbuckets(
      # JSON select path
      path: String
    ): jsonb
    state: String
    state_tax_id: String
    stripe_acct_id: String
    template_header: String

    # An array relationship
    templates(
      # distinct select on columns
      distinct_on: [templates_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [templates_order_by!]

      # filter the rows returned
      where: templates_bool_exp
    ): [templates!]!

    # An aggregated array relationship
    templates_aggregate(
      # distinct select on columns
      distinct_on: [templates_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [templates_order_by!]

      # filter the rows returned
      where: templates_bool_exp
    ): templates_aggregate!
    textid: String

    # An array relationship
    timetickets(
      # distinct select on columns
      distinct_on: [timetickets_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [timetickets_order_by!]

      # filter the rows returned
      where: timetickets_bool_exp
    ): [timetickets!]!

    # An aggregated array relationship
    timetickets_aggregate(
      # distinct select on columns
      distinct_on: [timetickets_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [timetickets_order_by!]

      # filter the rows returned
      where: timetickets_bool_exp
    ): timetickets_aggregate!
    updated_at: timestamptz

    # An array relationship
    vehicles(
      # distinct select on columns
      distinct_on: [vehicles_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [vehicles_order_by!]

      # filter the rows returned
      where: vehicles_bool_exp
    ): [vehicles!]!

    # An aggregated array relationship
    vehicles_aggregate(
      # distinct select on columns
      distinct_on: [vehicles_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [vehicles_order_by!]

      # filter the rows returned
      where: vehicles_bool_exp
    ): vehicles_aggregate!

    # An array relationship
    vendors(
      # distinct select on columns
      distinct_on: [vendors_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [vendors_order_by!]

      # filter the rows returned
      where: vendors_bool_exp
    ): [vendors!]!

    # An aggregated array relationship
    vendors_aggregate(
      # distinct select on columns
      distinct_on: [vendors_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [vendors_order_by!]

      # filter the rows returned
      where: vendors_bool_exp
    ): vendors_aggregate!
    zip_post: String
  }

  # aggregated selection of "bodyshops"
  type bodyshops_aggregate {
    aggregate: bodyshops_aggregate_fields
    nodes: [bodyshops!]!
  }

  # aggregate fields of "bodyshops"
  type bodyshops_aggregate_fields {
    avg: bodyshops_avg_fields
    count(columns: [bodyshops_select_column!], distinct: Boolean): Int
    max: bodyshops_max_fields
    min: bodyshops_min_fields
    stddev: bodyshops_stddev_fields
    stddev_pop: bodyshops_stddev_pop_fields
    stddev_samp: bodyshops_stddev_samp_fields
    sum: bodyshops_sum_fields
    var_pop: bodyshops_var_pop_fields
    var_samp: bodyshops_var_samp_fields
    variance: bodyshops_variance_fields
  }

  # order by aggregate values of table "bodyshops"
  input bodyshops_aggregate_order_by {
    avg: bodyshops_avg_order_by
    count: order_by
    max: bodyshops_max_order_by
    min: bodyshops_min_order_by
    stddev: bodyshops_stddev_order_by
    stddev_pop: bodyshops_stddev_pop_order_by
    stddev_samp: bodyshops_stddev_samp_order_by
    sum: bodyshops_sum_order_by
    var_pop: bodyshops_var_pop_order_by
    var_samp: bodyshops_var_samp_order_by
    variance: bodyshops_variance_order_by
  }

  # append existing jsonb value of filtered columns with new jsonb value
  input bodyshops_append_input {
    accountingconfig: jsonb
    deliverchecklist: jsonb
    intakechecklist: jsonb
    invoice_tax_rates: jsonb
    md_categories: jsonb
    md_classes: jsonb
    md_ins_cos: jsonb
    md_labor_rates: jsonb
    md_messaging_presets: jsonb
    md_notes_presets: jsonb
    md_order_statuses: jsonb
    md_parts_locations: jsonb
    md_rbac: jsonb
    md_referral_sources: jsonb
    md_responsibility_centers: jsonb
    md_ro_statuses: jsonb
    production_config: jsonb
    scoreboard_target: jsonb
    shoprates: jsonb
    speedprint: jsonb
    ssbuckets: jsonb
  }

  # input type for inserting array relation for remote table "bodyshops"
  input bodyshops_arr_rel_insert_input {
    data: [bodyshops_insert_input!]!
    on_conflict: bodyshops_on_conflict
  }

  # aggregate avg on columns
  type bodyshops_avg_fields {
    appt_length: Float
    prodtargethrs: Float
  }

  # order by avg() on columns of table "bodyshops"
  input bodyshops_avg_order_by {
    appt_length: order_by
    prodtargethrs: order_by
  }

  # Boolean expression to filter rows from the table "bodyshops". All fields are combined with a logical 'AND'.
  input bodyshops_bool_exp {
    _and: [bodyshops_bool_exp]
    _not: bodyshops_bool_exp
    _or: [bodyshops_bool_exp]
    accountingconfig: jsonb_comparison_exp
    address1: String_comparison_exp
    address2: String_comparison_exp
    appointments: appointments_bool_exp
    appt_length: Int_comparison_exp
    associations: associations_bool_exp
    audit_trails: audit_trail_bool_exp
    available_jobs: available_jobs_bool_exp
    city: String_comparison_exp
    conversations: conversations_bool_exp
    counters: counters_bool_exp
    country: String_comparison_exp
    courtesycars: courtesycars_bool_exp
    created_at: timestamptz_comparison_exp
    csiinvites: csi_bool_exp
    csiquestions: csiquestions_bool_exp
    deliverchecklist: jsonb_comparison_exp
    email: String_comparison_exp
    employees: employees_bool_exp
    enforce_class: Boolean_comparison_exp
    federal_tax_id: String_comparison_exp
    id: uuid_comparison_exp
    inhousevendorid: uuid_comparison_exp
    insurance_vendor_id: String_comparison_exp
    intakechecklist: jsonb_comparison_exp
    invoice_tax_rates: jsonb_comparison_exp
    jobs: jobs_bool_exp
    logo_img_path: String_comparison_exp
    md_categories: jsonb_comparison_exp
    md_classes: jsonb_comparison_exp
    md_ins_cos: jsonb_comparison_exp
    md_labor_rates: jsonb_comparison_exp
    md_messaging_presets: jsonb_comparison_exp
    md_notes_presets: jsonb_comparison_exp
    md_order_statuses: jsonb_comparison_exp
    md_parts_locations: jsonb_comparison_exp
    md_rbac: jsonb_comparison_exp
    md_referral_sources: jsonb_comparison_exp
    md_responsibility_centers: jsonb_comparison_exp
    md_ro_statuses: jsonb_comparison_exp
    messagingservicesid: String_comparison_exp
    owners: owners_bool_exp
    prodtargethrs: numeric_comparison_exp
    production_config: jsonb_comparison_exp
    region_config: String_comparison_exp
    scoreboard_target: jsonb_comparison_exp
    shopname: String_comparison_exp
    shoprates: jsonb_comparison_exp
    speedprint: jsonb_comparison_exp
    ssbuckets: jsonb_comparison_exp
    state: String_comparison_exp
    state_tax_id: String_comparison_exp
    stripe_acct_id: String_comparison_exp
    template_header: String_comparison_exp
    templates: templates_bool_exp
    textid: String_comparison_exp
    timetickets: timetickets_bool_exp
    updated_at: timestamptz_comparison_exp
    vehicles: vehicles_bool_exp
    vendors: vendors_bool_exp
    zip_post: String_comparison_exp
  }

  # unique or primary key constraints on table "bodyshops"
  enum bodyshops_constraint {
    # unique or primary key constraint
    bodyshops_messagingservicesid_key

    # unique or primary key constraint
    bodyshops_pkey
  }

  # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
  input bodyshops_delete_at_path_input {
    accountingconfig: [String]
    deliverchecklist: [String]
    intakechecklist: [String]
    invoice_tax_rates: [String]
    md_categories: [String]
    md_classes: [String]
    md_ins_cos: [String]
    md_labor_rates: [String]
    md_messaging_presets: [String]
    md_notes_presets: [String]
    md_order_statuses: [String]
    md_parts_locations: [String]
    md_rbac: [String]
    md_referral_sources: [String]
    md_responsibility_centers: [String]
    md_ro_statuses: [String]
    production_config: [String]
    scoreboard_target: [String]
    shoprates: [String]
    speedprint: [String]
    ssbuckets: [String]
  }

  # delete the array element with specified index (negative integers count from the
  # end). throws an error if top level container is not an array
  input bodyshops_delete_elem_input {
    accountingconfig: Int
    deliverchecklist: Int
    intakechecklist: Int
    invoice_tax_rates: Int
    md_categories: Int
    md_classes: Int
    md_ins_cos: Int
    md_labor_rates: Int
    md_messaging_presets: Int
    md_notes_presets: Int
    md_order_statuses: Int
    md_parts_locations: Int
    md_rbac: Int
    md_referral_sources: Int
    md_responsibility_centers: Int
    md_ro_statuses: Int
    production_config: Int
    scoreboard_target: Int
    shoprates: Int
    speedprint: Int
    ssbuckets: Int
  }

  # delete key/value pair or string element. key/value pairs are matched based on their key value
  input bodyshops_delete_key_input {
    accountingconfig: String
    deliverchecklist: String
    intakechecklist: String
    invoice_tax_rates: String
    md_categories: String
    md_classes: String
    md_ins_cos: String
    md_labor_rates: String
    md_messaging_presets: String
    md_notes_presets: String
    md_order_statuses: String
    md_parts_locations: String
    md_rbac: String
    md_referral_sources: String
    md_responsibility_centers: String
    md_ro_statuses: String
    production_config: String
    scoreboard_target: String
    shoprates: String
    speedprint: String
    ssbuckets: String
  }

  # input type for incrementing integer column in table "bodyshops"
  input bodyshops_inc_input {
    appt_length: Int
    prodtargethrs: numeric
  }

  # input type for inserting data into table "bodyshops"
  input bodyshops_insert_input {
    accountingconfig: jsonb
    address1: String
    address2: String
    appointments: appointments_arr_rel_insert_input
    appt_length: Int
    associations: associations_arr_rel_insert_input
    audit_trails: audit_trail_arr_rel_insert_input
    available_jobs: available_jobs_arr_rel_insert_input
    city: String
    conversations: conversations_arr_rel_insert_input
    counters: counters_arr_rel_insert_input
    country: String
    courtesycars: courtesycars_arr_rel_insert_input
    created_at: timestamptz
    csiinvites: csi_arr_rel_insert_input
    csiquestions: csiquestions_arr_rel_insert_input
    deliverchecklist: jsonb
    email: String
    employees: employees_arr_rel_insert_input
    enforce_class: Boolean
    federal_tax_id: String
    id: uuid
    inhousevendorid: uuid
    insurance_vendor_id: String
    intakechecklist: jsonb
    invoice_tax_rates: jsonb
    jobs: jobs_arr_rel_insert_input
    logo_img_path: String
    md_categories: jsonb
    md_classes: jsonb
    md_ins_cos: jsonb
    md_labor_rates: jsonb
    md_messaging_presets: jsonb
    md_notes_presets: jsonb
    md_order_statuses: jsonb
    md_parts_locations: jsonb
    md_rbac: jsonb
    md_referral_sources: jsonb
    md_responsibility_centers: jsonb
    md_ro_statuses: jsonb
    messagingservicesid: String
    owners: owners_arr_rel_insert_input
    prodtargethrs: numeric
    production_config: jsonb
    region_config: String
    scoreboard_target: jsonb
    shopname: String
    shoprates: jsonb
    speedprint: jsonb
    ssbuckets: jsonb
    state: String
    state_tax_id: String
    stripe_acct_id: String
    template_header: String
    templates: templates_arr_rel_insert_input
    textid: String
    timetickets: timetickets_arr_rel_insert_input
    updated_at: timestamptz
    vehicles: vehicles_arr_rel_insert_input
    vendors: vendors_arr_rel_insert_input
    zip_post: String
  }

  # aggregate max on columns
  type bodyshops_max_fields {
    address1: String
    address2: String
    appt_length: Int
    city: String
    country: String
    created_at: timestamptz
    email: String
    federal_tax_id: String
    id: uuid
    inhousevendorid: uuid
    insurance_vendor_id: String
    logo_img_path: String
    messagingservicesid: String
    prodtargethrs: numeric
    region_config: String
    shopname: String
    state: String
    state_tax_id: String
    stripe_acct_id: String
    template_header: String
    textid: String
    updated_at: timestamptz
    zip_post: String
  }

  # order by max() on columns of table "bodyshops"
  input bodyshops_max_order_by {
    address1: order_by
    address2: order_by
    appt_length: order_by
    city: order_by
    country: order_by
    created_at: order_by
    email: order_by
    federal_tax_id: order_by
    id: order_by
    inhousevendorid: order_by
    insurance_vendor_id: order_by
    logo_img_path: order_by
    messagingservicesid: order_by
    prodtargethrs: order_by
    region_config: order_by
    shopname: order_by
    state: order_by
    state_tax_id: order_by
    stripe_acct_id: order_by
    template_header: order_by
    textid: order_by
    updated_at: order_by
    zip_post: order_by
  }

  # aggregate min on columns
  type bodyshops_min_fields {
    address1: String
    address2: String
    appt_length: Int
    city: String
    country: String
    created_at: timestamptz
    email: String
    federal_tax_id: String
    id: uuid
    inhousevendorid: uuid
    insurance_vendor_id: String
    logo_img_path: String
    messagingservicesid: String
    prodtargethrs: numeric
    region_config: String
    shopname: String
    state: String
    state_tax_id: String
    stripe_acct_id: String
    template_header: String
    textid: String
    updated_at: timestamptz
    zip_post: String
  }

  # order by min() on columns of table "bodyshops"
  input bodyshops_min_order_by {
    address1: order_by
    address2: order_by
    appt_length: order_by
    city: order_by
    country: order_by
    created_at: order_by
    email: order_by
    federal_tax_id: order_by
    id: order_by
    inhousevendorid: order_by
    insurance_vendor_id: order_by
    logo_img_path: order_by
    messagingservicesid: order_by
    prodtargethrs: order_by
    region_config: order_by
    shopname: order_by
    state: order_by
    state_tax_id: order_by
    stripe_acct_id: order_by
    template_header: order_by
    textid: order_by
    updated_at: order_by
    zip_post: order_by
  }

  # response of any mutation on the table "bodyshops"
  type bodyshops_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [bodyshops!]!
  }

  # input type for inserting object relation for remote table "bodyshops"
  input bodyshops_obj_rel_insert_input {
    data: bodyshops_insert_input!
    on_conflict: bodyshops_on_conflict
  }

  # on conflict condition type for table "bodyshops"
  input bodyshops_on_conflict {
    constraint: bodyshops_constraint!
    update_columns: [bodyshops_update_column!]!
    where: bodyshops_bool_exp
  }

  # ordering options when selecting data from "bodyshops"
  input bodyshops_order_by {
    accountingconfig: order_by
    address1: order_by
    address2: order_by
    appointments_aggregate: appointments_aggregate_order_by
    appt_length: order_by
    associations_aggregate: associations_aggregate_order_by
    audit_trails_aggregate: audit_trail_aggregate_order_by
    available_jobs_aggregate: available_jobs_aggregate_order_by
    city: order_by
    conversations_aggregate: conversations_aggregate_order_by
    counters_aggregate: counters_aggregate_order_by
    country: order_by
    courtesycars_aggregate: courtesycars_aggregate_order_by
    created_at: order_by
    csiinvites_aggregate: csi_aggregate_order_by
    csiquestions_aggregate: csiquestions_aggregate_order_by
    deliverchecklist: order_by
    email: order_by
    employees_aggregate: employees_aggregate_order_by
    enforce_class: order_by
    federal_tax_id: order_by
    id: order_by
    inhousevendorid: order_by
    insurance_vendor_id: order_by
    intakechecklist: order_by
    invoice_tax_rates: order_by
    jobs_aggregate: jobs_aggregate_order_by
    logo_img_path: order_by
    md_categories: order_by
    md_classes: order_by
    md_ins_cos: order_by
    md_labor_rates: order_by
    md_messaging_presets: order_by
    md_notes_presets: order_by
    md_order_statuses: order_by
    md_parts_locations: order_by
    md_rbac: order_by
    md_referral_sources: order_by
    md_responsibility_centers: order_by
    md_ro_statuses: order_by
    messagingservicesid: order_by
    owners_aggregate: owners_aggregate_order_by
    prodtargethrs: order_by
    production_config: order_by
    region_config: order_by
    scoreboard_target: order_by
    shopname: order_by
    shoprates: order_by
    speedprint: order_by
    ssbuckets: order_by
    state: order_by
    state_tax_id: order_by
    stripe_acct_id: order_by
    template_header: order_by
    templates_aggregate: templates_aggregate_order_by
    textid: order_by
    timetickets_aggregate: timetickets_aggregate_order_by
    updated_at: order_by
    vehicles_aggregate: vehicles_aggregate_order_by
    vendors_aggregate: vendors_aggregate_order_by
    zip_post: order_by
  }

  # primary key columns input for table: "bodyshops"
  input bodyshops_pk_columns_input {
    id: uuid!
  }

  # prepend existing jsonb value of filtered columns with new jsonb value
  input bodyshops_prepend_input {
    accountingconfig: jsonb
    deliverchecklist: jsonb
    intakechecklist: jsonb
    invoice_tax_rates: jsonb
    md_categories: jsonb
    md_classes: jsonb
    md_ins_cos: jsonb
    md_labor_rates: jsonb
    md_messaging_presets: jsonb
    md_notes_presets: jsonb
    md_order_statuses: jsonb
    md_parts_locations: jsonb
    md_rbac: jsonb
    md_referral_sources: jsonb
    md_responsibility_centers: jsonb
    md_ro_statuses: jsonb
    production_config: jsonb
    scoreboard_target: jsonb
    shoprates: jsonb
    speedprint: jsonb
    ssbuckets: jsonb
  }

  # select columns of table "bodyshops"
  enum bodyshops_select_column {
    # column name
    accountingconfig

    # column name
    address1

    # column name
    address2

    # column name
    appt_length

    # column name
    city

    # column name
    country

    # column name
    created_at

    # column name
    deliverchecklist

    # column name
    email

    # column name
    enforce_class

    # column name
    federal_tax_id

    # column name
    id

    # column name
    inhousevendorid

    # column name
    insurance_vendor_id

    # column name
    intakechecklist

    # column name
    invoice_tax_rates

    # column name
    logo_img_path

    # column name
    md_categories

    # column name
    md_classes

    # column name
    md_ins_cos

    # column name
    md_labor_rates

    # column name
    md_messaging_presets

    # column name
    md_notes_presets

    # column name
    md_order_statuses

    # column name
    md_parts_locations

    # column name
    md_rbac

    # column name
    md_referral_sources

    # column name
    md_responsibility_centers

    # column name
    md_ro_statuses

    # column name
    messagingservicesid

    # column name
    prodtargethrs

    # column name
    production_config

    # column name
    region_config

    # column name
    scoreboard_target

    # column name
    shopname

    # column name
    shoprates

    # column name
    speedprint

    # column name
    ssbuckets

    # column name
    state

    # column name
    state_tax_id

    # column name
    stripe_acct_id

    # column name
    template_header

    # column name
    textid

    # column name
    updated_at

    # column name
    zip_post
  }

  # input type for updating data in table "bodyshops"
  input bodyshops_set_input {
    accountingconfig: jsonb
    address1: String
    address2: String
    appt_length: Int
    city: String
    country: String
    created_at: timestamptz
    deliverchecklist: jsonb
    email: String
    enforce_class: Boolean
    federal_tax_id: String
    id: uuid
    inhousevendorid: uuid
    insurance_vendor_id: String
    intakechecklist: jsonb
    invoice_tax_rates: jsonb
    logo_img_path: String
    md_categories: jsonb
    md_classes: jsonb
    md_ins_cos: jsonb
    md_labor_rates: jsonb
    md_messaging_presets: jsonb
    md_notes_presets: jsonb
    md_order_statuses: jsonb
    md_parts_locations: jsonb
    md_rbac: jsonb
    md_referral_sources: jsonb
    md_responsibility_centers: jsonb
    md_ro_statuses: jsonb
    messagingservicesid: String
    prodtargethrs: numeric
    production_config: jsonb
    region_config: String
    scoreboard_target: jsonb
    shopname: String
    shoprates: jsonb
    speedprint: jsonb
    ssbuckets: jsonb
    state: String
    state_tax_id: String
    stripe_acct_id: String
    template_header: String
    textid: String
    updated_at: timestamptz
    zip_post: String
  }

  # aggregate stddev on columns
  type bodyshops_stddev_fields {
    appt_length: Float
    prodtargethrs: Float
  }

  # order by stddev() on columns of table "bodyshops"
  input bodyshops_stddev_order_by {
    appt_length: order_by
    prodtargethrs: order_by
  }

  # aggregate stddev_pop on columns
  type bodyshops_stddev_pop_fields {
    appt_length: Float
    prodtargethrs: Float
  }

  # order by stddev_pop() on columns of table "bodyshops"
  input bodyshops_stddev_pop_order_by {
    appt_length: order_by
    prodtargethrs: order_by
  }

  # aggregate stddev_samp on columns
  type bodyshops_stddev_samp_fields {
    appt_length: Float
    prodtargethrs: Float
  }

  # order by stddev_samp() on columns of table "bodyshops"
  input bodyshops_stddev_samp_order_by {
    appt_length: order_by
    prodtargethrs: order_by
  }

  # aggregate sum on columns
  type bodyshops_sum_fields {
    appt_length: Int
    prodtargethrs: numeric
  }

  # order by sum() on columns of table "bodyshops"
  input bodyshops_sum_order_by {
    appt_length: order_by
    prodtargethrs: order_by
  }

  # update columns of table "bodyshops"
  enum bodyshops_update_column {
    # column name
    accountingconfig

    # column name
    address1

    # column name
    address2

    # column name
    appt_length

    # column name
    city

    # column name
    country

    # column name
    created_at

    # column name
    deliverchecklist

    # column name
    email

    # column name
    enforce_class

    # column name
    federal_tax_id

    # column name
    id

    # column name
    inhousevendorid

    # column name
    insurance_vendor_id

    # column name
    intakechecklist

    # column name
    invoice_tax_rates

    # column name
    logo_img_path

    # column name
    md_categories

    # column name
    md_classes

    # column name
    md_ins_cos

    # column name
    md_labor_rates

    # column name
    md_messaging_presets

    # column name
    md_notes_presets

    # column name
    md_order_statuses

    # column name
    md_parts_locations

    # column name
    md_rbac

    # column name
    md_referral_sources

    # column name
    md_responsibility_centers

    # column name
    md_ro_statuses

    # column name
    messagingservicesid

    # column name
    prodtargethrs

    # column name
    production_config

    # column name
    region_config

    # column name
    scoreboard_target

    # column name
    shopname

    # column name
    shoprates

    # column name
    speedprint

    # column name
    ssbuckets

    # column name
    state

    # column name
    state_tax_id

    # column name
    stripe_acct_id

    # column name
    template_header

    # column name
    textid

    # column name
    updated_at

    # column name
    zip_post
  }

  # aggregate var_pop on columns
  type bodyshops_var_pop_fields {
    appt_length: Float
    prodtargethrs: Float
  }

  # order by var_pop() on columns of table "bodyshops"
  input bodyshops_var_pop_order_by {
    appt_length: order_by
    prodtargethrs: order_by
  }

  # aggregate var_samp on columns
  type bodyshops_var_samp_fields {
    appt_length: Float
    prodtargethrs: Float
  }

  # order by var_samp() on columns of table "bodyshops"
  input bodyshops_var_samp_order_by {
    appt_length: order_by
    prodtargethrs: order_by
  }

  # aggregate variance on columns
  type bodyshops_variance_fields {
    appt_length: Float
    prodtargethrs: Float
  }

  # order by variance() on columns of table "bodyshops"
  input bodyshops_variance_order_by {
    appt_length: order_by
    prodtargethrs: order_by
  }

  # expression to compare columns of type Boolean. All fields are combined with logical 'AND'.
  input Boolean_comparison_exp {
    _eq: Boolean
    _gt: Boolean
    _gte: Boolean
    _in: [Boolean!]
    _is_null: Boolean
    _lt: Boolean
    _lte: Boolean
    _neq: Boolean
    _nin: [Boolean!]
  }

  # columns and relationships of "cccontracts"
  type cccontracts {
    actax: numeric
    actualreturn: timestamptz
    agreementnumber: Int!
    cc_cardholder: String
    cc_expiry: String
    cc_num: String
    cleanupcharge: numeric
    contract_date: date!

    # An object relationship
    courtesycar: courtesycars!
    courtesycarid: uuid!
    coverage: numeric
    created_at: timestamptz!
    dailyfreekm: Int
    dailyrate: numeric
    damagewaiver: numeric
    driver_addr1: String!
    driver_addr2: String
    driver_city: String!
    driver_dlexpiry: date!
    driver_dlnumber: String!
    driver_dlst: String!
    driver_dob: date!
    driver_fn: String!
    driver_ln: String!
    driver_ph1: String!
    driver_state: String!
    driver_zip: String!
    excesskmrate: numeric
    federaltax: numeric
    id: uuid!

    # An object relationship
    job: jobs!
    jobid: uuid!
    kmend: numeric
    kmstart: numeric!
    localtax: numeric
    refuelcharge: numeric
    scheduledreturn: timestamptz
    start: timestamptz
    statetax: numeric
    status: String!
    updated_at: timestamptz!
  }

  # aggregated selection of "cccontracts"
  type cccontracts_aggregate {
    aggregate: cccontracts_aggregate_fields
    nodes: [cccontracts!]!
  }

  # aggregate fields of "cccontracts"
  type cccontracts_aggregate_fields {
    avg: cccontracts_avg_fields
    count(columns: [cccontracts_select_column!], distinct: Boolean): Int
    max: cccontracts_max_fields
    min: cccontracts_min_fields
    stddev: cccontracts_stddev_fields
    stddev_pop: cccontracts_stddev_pop_fields
    stddev_samp: cccontracts_stddev_samp_fields
    sum: cccontracts_sum_fields
    var_pop: cccontracts_var_pop_fields
    var_samp: cccontracts_var_samp_fields
    variance: cccontracts_variance_fields
  }

  # order by aggregate values of table "cccontracts"
  input cccontracts_aggregate_order_by {
    avg: cccontracts_avg_order_by
    count: order_by
    max: cccontracts_max_order_by
    min: cccontracts_min_order_by
    stddev: cccontracts_stddev_order_by
    stddev_pop: cccontracts_stddev_pop_order_by
    stddev_samp: cccontracts_stddev_samp_order_by
    sum: cccontracts_sum_order_by
    var_pop: cccontracts_var_pop_order_by
    var_samp: cccontracts_var_samp_order_by
    variance: cccontracts_variance_order_by
  }

  # input type for inserting array relation for remote table "cccontracts"
  input cccontracts_arr_rel_insert_input {
    data: [cccontracts_insert_input!]!
    on_conflict: cccontracts_on_conflict
  }

  # aggregate avg on columns
  type cccontracts_avg_fields {
    actax: Float
    agreementnumber: Float
    cleanupcharge: Float
    coverage: Float
    dailyfreekm: Float
    dailyrate: Float
    damagewaiver: Float
    excesskmrate: Float
    federaltax: Float
    kmend: Float
    kmstart: Float
    localtax: Float
    refuelcharge: Float
    statetax: Float
  }

  # order by avg() on columns of table "cccontracts"
  input cccontracts_avg_order_by {
    actax: order_by
    agreementnumber: order_by
    cleanupcharge: order_by
    coverage: order_by
    dailyfreekm: order_by
    dailyrate: order_by
    damagewaiver: order_by
    excesskmrate: order_by
    federaltax: order_by
    kmend: order_by
    kmstart: order_by
    localtax: order_by
    refuelcharge: order_by
    statetax: order_by
  }

  # Boolean expression to filter rows from the table "cccontracts". All fields are combined with a logical 'AND'.
  input cccontracts_bool_exp {
    _and: [cccontracts_bool_exp]
    _not: cccontracts_bool_exp
    _or: [cccontracts_bool_exp]
    actax: numeric_comparison_exp
    actualreturn: timestamptz_comparison_exp
    agreementnumber: Int_comparison_exp
    cc_cardholder: String_comparison_exp
    cc_expiry: String_comparison_exp
    cc_num: String_comparison_exp
    cleanupcharge: numeric_comparison_exp
    contract_date: date_comparison_exp
    courtesycar: courtesycars_bool_exp
    courtesycarid: uuid_comparison_exp
    coverage: numeric_comparison_exp
    created_at: timestamptz_comparison_exp
    dailyfreekm: Int_comparison_exp
    dailyrate: numeric_comparison_exp
    damagewaiver: numeric_comparison_exp
    driver_addr1: String_comparison_exp
    driver_addr2: String_comparison_exp
    driver_city: String_comparison_exp
    driver_dlexpiry: date_comparison_exp
    driver_dlnumber: String_comparison_exp
    driver_dlst: String_comparison_exp
    driver_dob: date_comparison_exp
    driver_fn: String_comparison_exp
    driver_ln: String_comparison_exp
    driver_ph1: String_comparison_exp
    driver_state: String_comparison_exp
    driver_zip: String_comparison_exp
    excesskmrate: numeric_comparison_exp
    federaltax: numeric_comparison_exp
    id: uuid_comparison_exp
    job: jobs_bool_exp
    jobid: uuid_comparison_exp
    kmend: numeric_comparison_exp
    kmstart: numeric_comparison_exp
    localtax: numeric_comparison_exp
    refuelcharge: numeric_comparison_exp
    scheduledreturn: timestamptz_comparison_exp
    start: timestamptz_comparison_exp
    statetax: numeric_comparison_exp
    status: String_comparison_exp
    updated_at: timestamptz_comparison_exp
  }

  # unique or primary key constraints on table "cccontracts"
  enum cccontracts_constraint {
    # unique or primary key constraint
    cccontract_pkey
  }

  # input type for incrementing integer column in table "cccontracts"
  input cccontracts_inc_input {
    actax: numeric
    agreementnumber: Int
    cleanupcharge: numeric
    coverage: numeric
    dailyfreekm: Int
    dailyrate: numeric
    damagewaiver: numeric
    excesskmrate: numeric
    federaltax: numeric
    kmend: numeric
    kmstart: numeric
    localtax: numeric
    refuelcharge: numeric
    statetax: numeric
  }

  # input type for inserting data into table "cccontracts"
  input cccontracts_insert_input {
    actax: numeric
    actualreturn: timestamptz
    agreementnumber: Int
    cc_cardholder: String
    cc_expiry: String
    cc_num: String
    cleanupcharge: numeric
    contract_date: date
    courtesycar: courtesycars_obj_rel_insert_input
    courtesycarid: uuid
    coverage: numeric
    created_at: timestamptz
    dailyfreekm: Int
    dailyrate: numeric
    damagewaiver: numeric
    driver_addr1: String
    driver_addr2: String
    driver_city: String
    driver_dlexpiry: date
    driver_dlnumber: String
    driver_dlst: String
    driver_dob: date
    driver_fn: String
    driver_ln: String
    driver_ph1: String
    driver_state: String
    driver_zip: String
    excesskmrate: numeric
    federaltax: numeric
    id: uuid
    job: jobs_obj_rel_insert_input
    jobid: uuid
    kmend: numeric
    kmstart: numeric
    localtax: numeric
    refuelcharge: numeric
    scheduledreturn: timestamptz
    start: timestamptz
    statetax: numeric
    status: String
    updated_at: timestamptz
  }

  # aggregate max on columns
  type cccontracts_max_fields {
    actax: numeric
    actualreturn: timestamptz
    agreementnumber: Int
    cc_cardholder: String
    cc_expiry: String
    cc_num: String
    cleanupcharge: numeric
    contract_date: date
    courtesycarid: uuid
    coverage: numeric
    created_at: timestamptz
    dailyfreekm: Int
    dailyrate: numeric
    damagewaiver: numeric
    driver_addr1: String
    driver_addr2: String
    driver_city: String
    driver_dlexpiry: date
    driver_dlnumber: String
    driver_dlst: String
    driver_dob: date
    driver_fn: String
    driver_ln: String
    driver_ph1: String
    driver_state: String
    driver_zip: String
    excesskmrate: numeric
    federaltax: numeric
    id: uuid
    jobid: uuid
    kmend: numeric
    kmstart: numeric
    localtax: numeric
    refuelcharge: numeric
    scheduledreturn: timestamptz
    start: timestamptz
    statetax: numeric
    status: String
    updated_at: timestamptz
  }

  # order by max() on columns of table "cccontracts"
  input cccontracts_max_order_by {
    actax: order_by
    actualreturn: order_by
    agreementnumber: order_by
    cc_cardholder: order_by
    cc_expiry: order_by
    cc_num: order_by
    cleanupcharge: order_by
    contract_date: order_by
    courtesycarid: order_by
    coverage: order_by
    created_at: order_by
    dailyfreekm: order_by
    dailyrate: order_by
    damagewaiver: order_by
    driver_addr1: order_by
    driver_addr2: order_by
    driver_city: order_by
    driver_dlexpiry: order_by
    driver_dlnumber: order_by
    driver_dlst: order_by
    driver_dob: order_by
    driver_fn: order_by
    driver_ln: order_by
    driver_ph1: order_by
    driver_state: order_by
    driver_zip: order_by
    excesskmrate: order_by
    federaltax: order_by
    id: order_by
    jobid: order_by
    kmend: order_by
    kmstart: order_by
    localtax: order_by
    refuelcharge: order_by
    scheduledreturn: order_by
    start: order_by
    statetax: order_by
    status: order_by
    updated_at: order_by
  }

  # aggregate min on columns
  type cccontracts_min_fields {
    actax: numeric
    actualreturn: timestamptz
    agreementnumber: Int
    cc_cardholder: String
    cc_expiry: String
    cc_num: String
    cleanupcharge: numeric
    contract_date: date
    courtesycarid: uuid
    coverage: numeric
    created_at: timestamptz
    dailyfreekm: Int
    dailyrate: numeric
    damagewaiver: numeric
    driver_addr1: String
    driver_addr2: String
    driver_city: String
    driver_dlexpiry: date
    driver_dlnumber: String
    driver_dlst: String
    driver_dob: date
    driver_fn: String
    driver_ln: String
    driver_ph1: String
    driver_state: String
    driver_zip: String
    excesskmrate: numeric
    federaltax: numeric
    id: uuid
    jobid: uuid
    kmend: numeric
    kmstart: numeric
    localtax: numeric
    refuelcharge: numeric
    scheduledreturn: timestamptz
    start: timestamptz
    statetax: numeric
    status: String
    updated_at: timestamptz
  }

  # order by min() on columns of table "cccontracts"
  input cccontracts_min_order_by {
    actax: order_by
    actualreturn: order_by
    agreementnumber: order_by
    cc_cardholder: order_by
    cc_expiry: order_by
    cc_num: order_by
    cleanupcharge: order_by
    contract_date: order_by
    courtesycarid: order_by
    coverage: order_by
    created_at: order_by
    dailyfreekm: order_by
    dailyrate: order_by
    damagewaiver: order_by
    driver_addr1: order_by
    driver_addr2: order_by
    driver_city: order_by
    driver_dlexpiry: order_by
    driver_dlnumber: order_by
    driver_dlst: order_by
    driver_dob: order_by
    driver_fn: order_by
    driver_ln: order_by
    driver_ph1: order_by
    driver_state: order_by
    driver_zip: order_by
    excesskmrate: order_by
    federaltax: order_by
    id: order_by
    jobid: order_by
    kmend: order_by
    kmstart: order_by
    localtax: order_by
    refuelcharge: order_by
    scheduledreturn: order_by
    start: order_by
    statetax: order_by
    status: order_by
    updated_at: order_by
  }

  # response of any mutation on the table "cccontracts"
  type cccontracts_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [cccontracts!]!
  }

  # input type for inserting object relation for remote table "cccontracts"
  input cccontracts_obj_rel_insert_input {
    data: cccontracts_insert_input!
    on_conflict: cccontracts_on_conflict
  }

  # on conflict condition type for table "cccontracts"
  input cccontracts_on_conflict {
    constraint: cccontracts_constraint!
    update_columns: [cccontracts_update_column!]!
    where: cccontracts_bool_exp
  }

  # ordering options when selecting data from "cccontracts"
  input cccontracts_order_by {
    actax: order_by
    actualreturn: order_by
    agreementnumber: order_by
    cc_cardholder: order_by
    cc_expiry: order_by
    cc_num: order_by
    cleanupcharge: order_by
    contract_date: order_by
    courtesycar: courtesycars_order_by
    courtesycarid: order_by
    coverage: order_by
    created_at: order_by
    dailyfreekm: order_by
    dailyrate: order_by
    damagewaiver: order_by
    driver_addr1: order_by
    driver_addr2: order_by
    driver_city: order_by
    driver_dlexpiry: order_by
    driver_dlnumber: order_by
    driver_dlst: order_by
    driver_dob: order_by
    driver_fn: order_by
    driver_ln: order_by
    driver_ph1: order_by
    driver_state: order_by
    driver_zip: order_by
    excesskmrate: order_by
    federaltax: order_by
    id: order_by
    job: jobs_order_by
    jobid: order_by
    kmend: order_by
    kmstart: order_by
    localtax: order_by
    refuelcharge: order_by
    scheduledreturn: order_by
    start: order_by
    statetax: order_by
    status: order_by
    updated_at: order_by
  }

  # primary key columns input for table: "cccontracts"
  input cccontracts_pk_columns_input {
    id: uuid!
  }

  # select columns of table "cccontracts"
  enum cccontracts_select_column {
    # column name
    actax

    # column name
    actualreturn

    # column name
    agreementnumber

    # column name
    cc_cardholder

    # column name
    cc_expiry

    # column name
    cc_num

    # column name
    cleanupcharge

    # column name
    contract_date

    # column name
    courtesycarid

    # column name
    coverage

    # column name
    created_at

    # column name
    dailyfreekm

    # column name
    dailyrate

    # column name
    damagewaiver

    # column name
    driver_addr1

    # column name
    driver_addr2

    # column name
    driver_city

    # column name
    driver_dlexpiry

    # column name
    driver_dlnumber

    # column name
    driver_dlst

    # column name
    driver_dob

    # column name
    driver_fn

    # column name
    driver_ln

    # column name
    driver_ph1

    # column name
    driver_state

    # column name
    driver_zip

    # column name
    excesskmrate

    # column name
    federaltax

    # column name
    id

    # column name
    jobid

    # column name
    kmend

    # column name
    kmstart

    # column name
    localtax

    # column name
    refuelcharge

    # column name
    scheduledreturn

    # column name
    start

    # column name
    statetax

    # column name
    status

    # column name
    updated_at
  }

  # input type for updating data in table "cccontracts"
  input cccontracts_set_input {
    actax: numeric
    actualreturn: timestamptz
    agreementnumber: Int
    cc_cardholder: String
    cc_expiry: String
    cc_num: String
    cleanupcharge: numeric
    contract_date: date
    courtesycarid: uuid
    coverage: numeric
    created_at: timestamptz
    dailyfreekm: Int
    dailyrate: numeric
    damagewaiver: numeric
    driver_addr1: String
    driver_addr2: String
    driver_city: String
    driver_dlexpiry: date
    driver_dlnumber: String
    driver_dlst: String
    driver_dob: date
    driver_fn: String
    driver_ln: String
    driver_ph1: String
    driver_state: String
    driver_zip: String
    excesskmrate: numeric
    federaltax: numeric
    id: uuid
    jobid: uuid
    kmend: numeric
    kmstart: numeric
    localtax: numeric
    refuelcharge: numeric
    scheduledreturn: timestamptz
    start: timestamptz
    statetax: numeric
    status: String
    updated_at: timestamptz
  }

  # aggregate stddev on columns
  type cccontracts_stddev_fields {
    actax: Float
    agreementnumber: Float
    cleanupcharge: Float
    coverage: Float
    dailyfreekm: Float
    dailyrate: Float
    damagewaiver: Float
    excesskmrate: Float
    federaltax: Float
    kmend: Float
    kmstart: Float
    localtax: Float
    refuelcharge: Float
    statetax: Float
  }

  # order by stddev() on columns of table "cccontracts"
  input cccontracts_stddev_order_by {
    actax: order_by
    agreementnumber: order_by
    cleanupcharge: order_by
    coverage: order_by
    dailyfreekm: order_by
    dailyrate: order_by
    damagewaiver: order_by
    excesskmrate: order_by
    federaltax: order_by
    kmend: order_by
    kmstart: order_by
    localtax: order_by
    refuelcharge: order_by
    statetax: order_by
  }

  # aggregate stddev_pop on columns
  type cccontracts_stddev_pop_fields {
    actax: Float
    agreementnumber: Float
    cleanupcharge: Float
    coverage: Float
    dailyfreekm: Float
    dailyrate: Float
    damagewaiver: Float
    excesskmrate: Float
    federaltax: Float
    kmend: Float
    kmstart: Float
    localtax: Float
    refuelcharge: Float
    statetax: Float
  }

  # order by stddev_pop() on columns of table "cccontracts"
  input cccontracts_stddev_pop_order_by {
    actax: order_by
    agreementnumber: order_by
    cleanupcharge: order_by
    coverage: order_by
    dailyfreekm: order_by
    dailyrate: order_by
    damagewaiver: order_by
    excesskmrate: order_by
    federaltax: order_by
    kmend: order_by
    kmstart: order_by
    localtax: order_by
    refuelcharge: order_by
    statetax: order_by
  }

  # aggregate stddev_samp on columns
  type cccontracts_stddev_samp_fields {
    actax: Float
    agreementnumber: Float
    cleanupcharge: Float
    coverage: Float
    dailyfreekm: Float
    dailyrate: Float
    damagewaiver: Float
    excesskmrate: Float
    federaltax: Float
    kmend: Float
    kmstart: Float
    localtax: Float
    refuelcharge: Float
    statetax: Float
  }

  # order by stddev_samp() on columns of table "cccontracts"
  input cccontracts_stddev_samp_order_by {
    actax: order_by
    agreementnumber: order_by
    cleanupcharge: order_by
    coverage: order_by
    dailyfreekm: order_by
    dailyrate: order_by
    damagewaiver: order_by
    excesskmrate: order_by
    federaltax: order_by
    kmend: order_by
    kmstart: order_by
    localtax: order_by
    refuelcharge: order_by
    statetax: order_by
  }

  # aggregate sum on columns
  type cccontracts_sum_fields {
    actax: numeric
    agreementnumber: Int
    cleanupcharge: numeric
    coverage: numeric
    dailyfreekm: Int
    dailyrate: numeric
    damagewaiver: numeric
    excesskmrate: numeric
    federaltax: numeric
    kmend: numeric
    kmstart: numeric
    localtax: numeric
    refuelcharge: numeric
    statetax: numeric
  }

  # order by sum() on columns of table "cccontracts"
  input cccontracts_sum_order_by {
    actax: order_by
    agreementnumber: order_by
    cleanupcharge: order_by
    coverage: order_by
    dailyfreekm: order_by
    dailyrate: order_by
    damagewaiver: order_by
    excesskmrate: order_by
    federaltax: order_by
    kmend: order_by
    kmstart: order_by
    localtax: order_by
    refuelcharge: order_by
    statetax: order_by
  }

  # update columns of table "cccontracts"
  enum cccontracts_update_column {
    # column name
    actax

    # column name
    actualreturn

    # column name
    agreementnumber

    # column name
    cc_cardholder

    # column name
    cc_expiry

    # column name
    cc_num

    # column name
    cleanupcharge

    # column name
    contract_date

    # column name
    courtesycarid

    # column name
    coverage

    # column name
    created_at

    # column name
    dailyfreekm

    # column name
    dailyrate

    # column name
    damagewaiver

    # column name
    driver_addr1

    # column name
    driver_addr2

    # column name
    driver_city

    # column name
    driver_dlexpiry

    # column name
    driver_dlnumber

    # column name
    driver_dlst

    # column name
    driver_dob

    # column name
    driver_fn

    # column name
    driver_ln

    # column name
    driver_ph1

    # column name
    driver_state

    # column name
    driver_zip

    # column name
    excesskmrate

    # column name
    federaltax

    # column name
    id

    # column name
    jobid

    # column name
    kmend

    # column name
    kmstart

    # column name
    localtax

    # column name
    refuelcharge

    # column name
    scheduledreturn

    # column name
    start

    # column name
    statetax

    # column name
    status

    # column name
    updated_at
  }

  # aggregate var_pop on columns
  type cccontracts_var_pop_fields {
    actax: Float
    agreementnumber: Float
    cleanupcharge: Float
    coverage: Float
    dailyfreekm: Float
    dailyrate: Float
    damagewaiver: Float
    excesskmrate: Float
    federaltax: Float
    kmend: Float
    kmstart: Float
    localtax: Float
    refuelcharge: Float
    statetax: Float
  }

  # order by var_pop() on columns of table "cccontracts"
  input cccontracts_var_pop_order_by {
    actax: order_by
    agreementnumber: order_by
    cleanupcharge: order_by
    coverage: order_by
    dailyfreekm: order_by
    dailyrate: order_by
    damagewaiver: order_by
    excesskmrate: order_by
    federaltax: order_by
    kmend: order_by
    kmstart: order_by
    localtax: order_by
    refuelcharge: order_by
    statetax: order_by
  }

  # aggregate var_samp on columns
  type cccontracts_var_samp_fields {
    actax: Float
    agreementnumber: Float
    cleanupcharge: Float
    coverage: Float
    dailyfreekm: Float
    dailyrate: Float
    damagewaiver: Float
    excesskmrate: Float
    federaltax: Float
    kmend: Float
    kmstart: Float
    localtax: Float
    refuelcharge: Float
    statetax: Float
  }

  # order by var_samp() on columns of table "cccontracts"
  input cccontracts_var_samp_order_by {
    actax: order_by
    agreementnumber: order_by
    cleanupcharge: order_by
    coverage: order_by
    dailyfreekm: order_by
    dailyrate: order_by
    damagewaiver: order_by
    excesskmrate: order_by
    federaltax: order_by
    kmend: order_by
    kmstart: order_by
    localtax: order_by
    refuelcharge: order_by
    statetax: order_by
  }

  # aggregate variance on columns
  type cccontracts_variance_fields {
    actax: Float
    agreementnumber: Float
    cleanupcharge: Float
    coverage: Float
    dailyfreekm: Float
    dailyrate: Float
    damagewaiver: Float
    excesskmrate: Float
    federaltax: Float
    kmend: Float
    kmstart: Float
    localtax: Float
    refuelcharge: Float
    statetax: Float
  }

  # order by variance() on columns of table "cccontracts"
  input cccontracts_variance_order_by {
    actax: order_by
    agreementnumber: order_by
    cleanupcharge: order_by
    coverage: order_by
    dailyfreekm: order_by
    dailyrate: order_by
    damagewaiver: order_by
    excesskmrate: order_by
    federaltax: order_by
    kmend: order_by
    kmstart: order_by
    localtax: order_by
    refuelcharge: order_by
    statetax: order_by
  }

  # columns and relationships of "conversations"
  type conversations {
    # An object relationship
    bodyshop: bodyshops!
    bodyshopid: uuid!
    created_at: timestamptz!
    id: uuid!

    # An array relationship
    job_conversations(
      # distinct select on columns
      distinct_on: [job_conversations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [job_conversations_order_by!]

      # filter the rows returned
      where: job_conversations_bool_exp
    ): [job_conversations!]!

    # An aggregated array relationship
    job_conversations_aggregate(
      # distinct select on columns
      distinct_on: [job_conversations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [job_conversations_order_by!]

      # filter the rows returned
      where: job_conversations_bool_exp
    ): job_conversations_aggregate!

    # An array relationship
    messages(
      # distinct select on columns
      distinct_on: [messages_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [messages_order_by!]

      # filter the rows returned
      where: messages_bool_exp
    ): [messages!]!

    # An aggregated array relationship
    messages_aggregate(
      # distinct select on columns
      distinct_on: [messages_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [messages_order_by!]

      # filter the rows returned
      where: messages_bool_exp
    ): messages_aggregate!
    phone_num: String!
    updated_at: timestamptz!
  }

  # aggregated selection of "conversations"
  type conversations_aggregate {
    aggregate: conversations_aggregate_fields
    nodes: [conversations!]!
  }

  # aggregate fields of "conversations"
  type conversations_aggregate_fields {
    count(columns: [conversations_select_column!], distinct: Boolean): Int
    max: conversations_max_fields
    min: conversations_min_fields
  }

  # order by aggregate values of table "conversations"
  input conversations_aggregate_order_by {
    count: order_by
    max: conversations_max_order_by
    min: conversations_min_order_by
  }

  # input type for inserting array relation for remote table "conversations"
  input conversations_arr_rel_insert_input {
    data: [conversations_insert_input!]!
    on_conflict: conversations_on_conflict
  }

  # Boolean expression to filter rows from the table "conversations". All fields are combined with a logical 'AND'.
  input conversations_bool_exp {
    _and: [conversations_bool_exp]
    _not: conversations_bool_exp
    _or: [conversations_bool_exp]
    bodyshop: bodyshops_bool_exp
    bodyshopid: uuid_comparison_exp
    created_at: timestamptz_comparison_exp
    id: uuid_comparison_exp
    job_conversations: job_conversations_bool_exp
    messages: messages_bool_exp
    phone_num: String_comparison_exp
    updated_at: timestamptz_comparison_exp
  }

  # unique or primary key constraints on table "conversations"
  enum conversations_constraint {
    # unique or primary key constraint
    conversations_pkey
  }

  # input type for inserting data into table "conversations"
  input conversations_insert_input {
    bodyshop: bodyshops_obj_rel_insert_input
    bodyshopid: uuid
    created_at: timestamptz
    id: uuid
    job_conversations: job_conversations_arr_rel_insert_input
    messages: messages_arr_rel_insert_input
    phone_num: String
    updated_at: timestamptz
  }

  # aggregate max on columns
  type conversations_max_fields {
    bodyshopid: uuid
    created_at: timestamptz
    id: uuid
    phone_num: String
    updated_at: timestamptz
  }

  # order by max() on columns of table "conversations"
  input conversations_max_order_by {
    bodyshopid: order_by
    created_at: order_by
    id: order_by
    phone_num: order_by
    updated_at: order_by
  }

  # aggregate min on columns
  type conversations_min_fields {
    bodyshopid: uuid
    created_at: timestamptz
    id: uuid
    phone_num: String
    updated_at: timestamptz
  }

  # order by min() on columns of table "conversations"
  input conversations_min_order_by {
    bodyshopid: order_by
    created_at: order_by
    id: order_by
    phone_num: order_by
    updated_at: order_by
  }

  # response of any mutation on the table "conversations"
  type conversations_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [conversations!]!
  }

  # input type for inserting object relation for remote table "conversations"
  input conversations_obj_rel_insert_input {
    data: conversations_insert_input!
    on_conflict: conversations_on_conflict
  }

  # on conflict condition type for table "conversations"
  input conversations_on_conflict {
    constraint: conversations_constraint!
    update_columns: [conversations_update_column!]!
    where: conversations_bool_exp
  }

  # ordering options when selecting data from "conversations"
  input conversations_order_by {
    bodyshop: bodyshops_order_by
    bodyshopid: order_by
    created_at: order_by
    id: order_by
    job_conversations_aggregate: job_conversations_aggregate_order_by
    messages_aggregate: messages_aggregate_order_by
    phone_num: order_by
    updated_at: order_by
  }

  # primary key columns input for table: "conversations"
  input conversations_pk_columns_input {
    id: uuid!
  }

  # select columns of table "conversations"
  enum conversations_select_column {
    # column name
    bodyshopid

    # column name
    created_at

    # column name
    id

    # column name
    phone_num

    # column name
    updated_at
  }

  # input type for updating data in table "conversations"
  input conversations_set_input {
    bodyshopid: uuid
    created_at: timestamptz
    id: uuid
    phone_num: String
    updated_at: timestamptz
  }

  # update columns of table "conversations"
  enum conversations_update_column {
    # column name
    bodyshopid

    # column name
    created_at

    # column name
    id

    # column name
    phone_num

    # column name
    updated_at
  }

  # columns and relationships of "counters"
  type counters {
    # An object relationship
    bodyshop: bodyshops!
    count: Int!
    countertype: String!
    id: uuid!
    prefix: String
    shopid: uuid!
    updated_at: timestamptz!
  }

  # aggregated selection of "counters"
  type counters_aggregate {
    aggregate: counters_aggregate_fields
    nodes: [counters!]!
  }

  # aggregate fields of "counters"
  type counters_aggregate_fields {
    avg: counters_avg_fields
    count(columns: [counters_select_column!], distinct: Boolean): Int
    max: counters_max_fields
    min: counters_min_fields
    stddev: counters_stddev_fields
    stddev_pop: counters_stddev_pop_fields
    stddev_samp: counters_stddev_samp_fields
    sum: counters_sum_fields
    var_pop: counters_var_pop_fields
    var_samp: counters_var_samp_fields
    variance: counters_variance_fields
  }

  # order by aggregate values of table "counters"
  input counters_aggregate_order_by {
    avg: counters_avg_order_by
    count: order_by
    max: counters_max_order_by
    min: counters_min_order_by
    stddev: counters_stddev_order_by
    stddev_pop: counters_stddev_pop_order_by
    stddev_samp: counters_stddev_samp_order_by
    sum: counters_sum_order_by
    var_pop: counters_var_pop_order_by
    var_samp: counters_var_samp_order_by
    variance: counters_variance_order_by
  }

  # input type for inserting array relation for remote table "counters"
  input counters_arr_rel_insert_input {
    data: [counters_insert_input!]!
    on_conflict: counters_on_conflict
  }

  # aggregate avg on columns
  type counters_avg_fields {
    count: Float
  }

  # order by avg() on columns of table "counters"
  input counters_avg_order_by {
    count: order_by
  }

  # Boolean expression to filter rows from the table "counters". All fields are combined with a logical 'AND'.
  input counters_bool_exp {
    _and: [counters_bool_exp]
    _not: counters_bool_exp
    _or: [counters_bool_exp]
    bodyshop: bodyshops_bool_exp
    count: Int_comparison_exp
    countertype: String_comparison_exp
    id: uuid_comparison_exp
    prefix: String_comparison_exp
    shopid: uuid_comparison_exp
    updated_at: timestamptz_comparison_exp
  }

  # unique or primary key constraints on table "counters"
  enum counters_constraint {
    # unique or primary key constraint
    counters_pkey
  }

  # input type for incrementing integer column in table "counters"
  input counters_inc_input {
    count: Int
  }

  # input type for inserting data into table "counters"
  input counters_insert_input {
    bodyshop: bodyshops_obj_rel_insert_input
    count: Int
    countertype: String
    id: uuid
    prefix: String
    shopid: uuid
    updated_at: timestamptz
  }

  # aggregate max on columns
  type counters_max_fields {
    count: Int
    countertype: String
    id: uuid
    prefix: String
    shopid: uuid
    updated_at: timestamptz
  }

  # order by max() on columns of table "counters"
  input counters_max_order_by {
    count: order_by
    countertype: order_by
    id: order_by
    prefix: order_by
    shopid: order_by
    updated_at: order_by
  }

  # aggregate min on columns
  type counters_min_fields {
    count: Int
    countertype: String
    id: uuid
    prefix: String
    shopid: uuid
    updated_at: timestamptz
  }

  # order by min() on columns of table "counters"
  input counters_min_order_by {
    count: order_by
    countertype: order_by
    id: order_by
    prefix: order_by
    shopid: order_by
    updated_at: order_by
  }

  # response of any mutation on the table "counters"
  type counters_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [counters!]!
  }

  # input type for inserting object relation for remote table "counters"
  input counters_obj_rel_insert_input {
    data: counters_insert_input!
    on_conflict: counters_on_conflict
  }

  # on conflict condition type for table "counters"
  input counters_on_conflict {
    constraint: counters_constraint!
    update_columns: [counters_update_column!]!
    where: counters_bool_exp
  }

  # ordering options when selecting data from "counters"
  input counters_order_by {
    bodyshop: bodyshops_order_by
    count: order_by
    countertype: order_by
    id: order_by
    prefix: order_by
    shopid: order_by
    updated_at: order_by
  }

  # primary key columns input for table: "counters"
  input counters_pk_columns_input {
    id: uuid!
  }

  # select columns of table "counters"
  enum counters_select_column {
    # column name
    count

    # column name
    countertype

    # column name
    id

    # column name
    prefix

    # column name
    shopid

    # column name
    updated_at
  }

  # input type for updating data in table "counters"
  input counters_set_input {
    count: Int
    countertype: String
    id: uuid
    prefix: String
    shopid: uuid
    updated_at: timestamptz
  }

  # aggregate stddev on columns
  type counters_stddev_fields {
    count: Float
  }

  # order by stddev() on columns of table "counters"
  input counters_stddev_order_by {
    count: order_by
  }

  # aggregate stddev_pop on columns
  type counters_stddev_pop_fields {
    count: Float
  }

  # order by stddev_pop() on columns of table "counters"
  input counters_stddev_pop_order_by {
    count: order_by
  }

  # aggregate stddev_samp on columns
  type counters_stddev_samp_fields {
    count: Float
  }

  # order by stddev_samp() on columns of table "counters"
  input counters_stddev_samp_order_by {
    count: order_by
  }

  # aggregate sum on columns
  type counters_sum_fields {
    count: Int
  }

  # order by sum() on columns of table "counters"
  input counters_sum_order_by {
    count: order_by
  }

  # update columns of table "counters"
  enum counters_update_column {
    # column name
    count

    # column name
    countertype

    # column name
    id

    # column name
    prefix

    # column name
    shopid

    # column name
    updated_at
  }

  # aggregate var_pop on columns
  type counters_var_pop_fields {
    count: Float
  }

  # order by var_pop() on columns of table "counters"
  input counters_var_pop_order_by {
    count: order_by
  }

  # aggregate var_samp on columns
  type counters_var_samp_fields {
    count: Float
  }

  # order by var_samp() on columns of table "counters"
  input counters_var_samp_order_by {
    count: order_by
  }

  # aggregate variance on columns
  type counters_variance_fields {
    count: Float
  }

  # order by variance() on columns of table "counters"
  input counters_variance_order_by {
    count: order_by
  }

  # columns and relationships of "courtesycars"
  type courtesycars {
    # An object relationship
    bodyshop: bodyshops!
    bodyshopid: uuid!

    # An array relationship
    cccontracts(
      # distinct select on columns
      distinct_on: [cccontracts_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [cccontracts_order_by!]

      # filter the rows returned
      where: cccontracts_bool_exp
    ): [cccontracts!]!

    # An aggregated array relationship
    cccontracts_aggregate(
      # distinct select on columns
      distinct_on: [cccontracts_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [cccontracts_order_by!]

      # filter the rows returned
      where: cccontracts_bool_exp
    ): cccontracts_aggregate!
    color: String!
    created_at: timestamptz!
    dailycost: numeric!
    damage: String
    fleetnumber: String
    fuel: numeric!
    id: uuid!
    insuranceexpires: date
    leaseenddate: date
    make: String!
    mileage: numeric!
    model: String!
    nextservicedate: date
    nextservicekm: numeric!
    notes: String
    plate: String!
    purchasedate: date
    registrationexpires: date
    serviceenddate: date
    servicestartdate: date
    status: String!
    updated_at: timestamptz!
    vin: String!
    year: String!
  }

  # aggregated selection of "courtesycars"
  type courtesycars_aggregate {
    aggregate: courtesycars_aggregate_fields
    nodes: [courtesycars!]!
  }

  # aggregate fields of "courtesycars"
  type courtesycars_aggregate_fields {
    avg: courtesycars_avg_fields
    count(columns: [courtesycars_select_column!], distinct: Boolean): Int
    max: courtesycars_max_fields
    min: courtesycars_min_fields
    stddev: courtesycars_stddev_fields
    stddev_pop: courtesycars_stddev_pop_fields
    stddev_samp: courtesycars_stddev_samp_fields
    sum: courtesycars_sum_fields
    var_pop: courtesycars_var_pop_fields
    var_samp: courtesycars_var_samp_fields
    variance: courtesycars_variance_fields
  }

  # order by aggregate values of table "courtesycars"
  input courtesycars_aggregate_order_by {
    avg: courtesycars_avg_order_by
    count: order_by
    max: courtesycars_max_order_by
    min: courtesycars_min_order_by
    stddev: courtesycars_stddev_order_by
    stddev_pop: courtesycars_stddev_pop_order_by
    stddev_samp: courtesycars_stddev_samp_order_by
    sum: courtesycars_sum_order_by
    var_pop: courtesycars_var_pop_order_by
    var_samp: courtesycars_var_samp_order_by
    variance: courtesycars_variance_order_by
  }

  # input type for inserting array relation for remote table "courtesycars"
  input courtesycars_arr_rel_insert_input {
    data: [courtesycars_insert_input!]!
    on_conflict: courtesycars_on_conflict
  }

  # aggregate avg on columns
  type courtesycars_avg_fields {
    dailycost: Float
    fuel: Float
    mileage: Float
    nextservicekm: Float
  }

  # order by avg() on columns of table "courtesycars"
  input courtesycars_avg_order_by {
    dailycost: order_by
    fuel: order_by
    mileage: order_by
    nextservicekm: order_by
  }

  # Boolean expression to filter rows from the table "courtesycars". All fields are combined with a logical 'AND'.
  input courtesycars_bool_exp {
    _and: [courtesycars_bool_exp]
    _not: courtesycars_bool_exp
    _or: [courtesycars_bool_exp]
    bodyshop: bodyshops_bool_exp
    bodyshopid: uuid_comparison_exp
    cccontracts: cccontracts_bool_exp
    color: String_comparison_exp
    created_at: timestamptz_comparison_exp
    dailycost: numeric_comparison_exp
    damage: String_comparison_exp
    fleetnumber: String_comparison_exp
    fuel: numeric_comparison_exp
    id: uuid_comparison_exp
    insuranceexpires: date_comparison_exp
    leaseenddate: date_comparison_exp
    make: String_comparison_exp
    mileage: numeric_comparison_exp
    model: String_comparison_exp
    nextservicedate: date_comparison_exp
    nextservicekm: numeric_comparison_exp
    notes: String_comparison_exp
    plate: String_comparison_exp
    purchasedate: date_comparison_exp
    registrationexpires: date_comparison_exp
    serviceenddate: date_comparison_exp
    servicestartdate: date_comparison_exp
    status: String_comparison_exp
    updated_at: timestamptz_comparison_exp
    vin: String_comparison_exp
    year: String_comparison_exp
  }

  # unique or primary key constraints on table "courtesycars"
  enum courtesycars_constraint {
    # unique or primary key constraint
    courtesycars_pkey
  }

  # input type for incrementing integer column in table "courtesycars"
  input courtesycars_inc_input {
    dailycost: numeric
    fuel: numeric
    mileage: numeric
    nextservicekm: numeric
  }

  # input type for inserting data into table "courtesycars"
  input courtesycars_insert_input {
    bodyshop: bodyshops_obj_rel_insert_input
    bodyshopid: uuid
    cccontracts: cccontracts_arr_rel_insert_input
    color: String
    created_at: timestamptz
    dailycost: numeric
    damage: String
    fleetnumber: String
    fuel: numeric
    id: uuid
    insuranceexpires: date
    leaseenddate: date
    make: String
    mileage: numeric
    model: String
    nextservicedate: date
    nextservicekm: numeric
    notes: String
    plate: String
    purchasedate: date
    registrationexpires: date
    serviceenddate: date
    servicestartdate: date
    status: String
    updated_at: timestamptz
    vin: String
    year: String
  }

  # aggregate max on columns
  type courtesycars_max_fields {
    bodyshopid: uuid
    color: String
    created_at: timestamptz
    dailycost: numeric
    damage: String
    fleetnumber: String
    fuel: numeric
    id: uuid
    insuranceexpires: date
    leaseenddate: date
    make: String
    mileage: numeric
    model: String
    nextservicedate: date
    nextservicekm: numeric
    notes: String
    plate: String
    purchasedate: date
    registrationexpires: date
    serviceenddate: date
    servicestartdate: date
    status: String
    updated_at: timestamptz
    vin: String
    year: String
  }

  # order by max() on columns of table "courtesycars"
  input courtesycars_max_order_by {
    bodyshopid: order_by
    color: order_by
    created_at: order_by
    dailycost: order_by
    damage: order_by
    fleetnumber: order_by
    fuel: order_by
    id: order_by
    insuranceexpires: order_by
    leaseenddate: order_by
    make: order_by
    mileage: order_by
    model: order_by
    nextservicedate: order_by
    nextservicekm: order_by
    notes: order_by
    plate: order_by
    purchasedate: order_by
    registrationexpires: order_by
    serviceenddate: order_by
    servicestartdate: order_by
    status: order_by
    updated_at: order_by
    vin: order_by
    year: order_by
  }

  # aggregate min on columns
  type courtesycars_min_fields {
    bodyshopid: uuid
    color: String
    created_at: timestamptz
    dailycost: numeric
    damage: String
    fleetnumber: String
    fuel: numeric
    id: uuid
    insuranceexpires: date
    leaseenddate: date
    make: String
    mileage: numeric
    model: String
    nextservicedate: date
    nextservicekm: numeric
    notes: String
    plate: String
    purchasedate: date
    registrationexpires: date
    serviceenddate: date
    servicestartdate: date
    status: String
    updated_at: timestamptz
    vin: String
    year: String
  }

  # order by min() on columns of table "courtesycars"
  input courtesycars_min_order_by {
    bodyshopid: order_by
    color: order_by
    created_at: order_by
    dailycost: order_by
    damage: order_by
    fleetnumber: order_by
    fuel: order_by
    id: order_by
    insuranceexpires: order_by
    leaseenddate: order_by
    make: order_by
    mileage: order_by
    model: order_by
    nextservicedate: order_by
    nextservicekm: order_by
    notes: order_by
    plate: order_by
    purchasedate: order_by
    registrationexpires: order_by
    serviceenddate: order_by
    servicestartdate: order_by
    status: order_by
    updated_at: order_by
    vin: order_by
    year: order_by
  }

  # response of any mutation on the table "courtesycars"
  type courtesycars_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [courtesycars!]!
  }

  # input type for inserting object relation for remote table "courtesycars"
  input courtesycars_obj_rel_insert_input {
    data: courtesycars_insert_input!
    on_conflict: courtesycars_on_conflict
  }

  # on conflict condition type for table "courtesycars"
  input courtesycars_on_conflict {
    constraint: courtesycars_constraint!
    update_columns: [courtesycars_update_column!]!
    where: courtesycars_bool_exp
  }

  # ordering options when selecting data from "courtesycars"
  input courtesycars_order_by {
    bodyshop: bodyshops_order_by
    bodyshopid: order_by
    cccontracts_aggregate: cccontracts_aggregate_order_by
    color: order_by
    created_at: order_by
    dailycost: order_by
    damage: order_by
    fleetnumber: order_by
    fuel: order_by
    id: order_by
    insuranceexpires: order_by
    leaseenddate: order_by
    make: order_by
    mileage: order_by
    model: order_by
    nextservicedate: order_by
    nextservicekm: order_by
    notes: order_by
    plate: order_by
    purchasedate: order_by
    registrationexpires: order_by
    serviceenddate: order_by
    servicestartdate: order_by
    status: order_by
    updated_at: order_by
    vin: order_by
    year: order_by
  }

  # primary key columns input for table: "courtesycars"
  input courtesycars_pk_columns_input {
    id: uuid!
  }

  # select columns of table "courtesycars"
  enum courtesycars_select_column {
    # column name
    bodyshopid

    # column name
    color

    # column name
    created_at

    # column name
    dailycost

    # column name
    damage

    # column name
    fleetnumber

    # column name
    fuel

    # column name
    id

    # column name
    insuranceexpires

    # column name
    leaseenddate

    # column name
    make

    # column name
    mileage

    # column name
    model

    # column name
    nextservicedate

    # column name
    nextservicekm

    # column name
    notes

    # column name
    plate

    # column name
    purchasedate

    # column name
    registrationexpires

    # column name
    serviceenddate

    # column name
    servicestartdate

    # column name
    status

    # column name
    updated_at

    # column name
    vin

    # column name
    year
  }

  # input type for updating data in table "courtesycars"
  input courtesycars_set_input {
    bodyshopid: uuid
    color: String
    created_at: timestamptz
    dailycost: numeric
    damage: String
    fleetnumber: String
    fuel: numeric
    id: uuid
    insuranceexpires: date
    leaseenddate: date
    make: String
    mileage: numeric
    model: String
    nextservicedate: date
    nextservicekm: numeric
    notes: String
    plate: String
    purchasedate: date
    registrationexpires: date
    serviceenddate: date
    servicestartdate: date
    status: String
    updated_at: timestamptz
    vin: String
    year: String
  }

  # aggregate stddev on columns
  type courtesycars_stddev_fields {
    dailycost: Float
    fuel: Float
    mileage: Float
    nextservicekm: Float
  }

  # order by stddev() on columns of table "courtesycars"
  input courtesycars_stddev_order_by {
    dailycost: order_by
    fuel: order_by
    mileage: order_by
    nextservicekm: order_by
  }

  # aggregate stddev_pop on columns
  type courtesycars_stddev_pop_fields {
    dailycost: Float
    fuel: Float
    mileage: Float
    nextservicekm: Float
  }

  # order by stddev_pop() on columns of table "courtesycars"
  input courtesycars_stddev_pop_order_by {
    dailycost: order_by
    fuel: order_by
    mileage: order_by
    nextservicekm: order_by
  }

  # aggregate stddev_samp on columns
  type courtesycars_stddev_samp_fields {
    dailycost: Float
    fuel: Float
    mileage: Float
    nextservicekm: Float
  }

  # order by stddev_samp() on columns of table "courtesycars"
  input courtesycars_stddev_samp_order_by {
    dailycost: order_by
    fuel: order_by
    mileage: order_by
    nextservicekm: order_by
  }

  # aggregate sum on columns
  type courtesycars_sum_fields {
    dailycost: numeric
    fuel: numeric
    mileage: numeric
    nextservicekm: numeric
  }

  # order by sum() on columns of table "courtesycars"
  input courtesycars_sum_order_by {
    dailycost: order_by
    fuel: order_by
    mileage: order_by
    nextservicekm: order_by
  }

  # update columns of table "courtesycars"
  enum courtesycars_update_column {
    # column name
    bodyshopid

    # column name
    color

    # column name
    created_at

    # column name
    dailycost

    # column name
    damage

    # column name
    fleetnumber

    # column name
    fuel

    # column name
    id

    # column name
    insuranceexpires

    # column name
    leaseenddate

    # column name
    make

    # column name
    mileage

    # column name
    model

    # column name
    nextservicedate

    # column name
    nextservicekm

    # column name
    notes

    # column name
    plate

    # column name
    purchasedate

    # column name
    registrationexpires

    # column name
    serviceenddate

    # column name
    servicestartdate

    # column name
    status

    # column name
    updated_at

    # column name
    vin

    # column name
    year
  }

  # aggregate var_pop on columns
  type courtesycars_var_pop_fields {
    dailycost: Float
    fuel: Float
    mileage: Float
    nextservicekm: Float
  }

  # order by var_pop() on columns of table "courtesycars"
  input courtesycars_var_pop_order_by {
    dailycost: order_by
    fuel: order_by
    mileage: order_by
    nextservicekm: order_by
  }

  # aggregate var_samp on columns
  type courtesycars_var_samp_fields {
    dailycost: Float
    fuel: Float
    mileage: Float
    nextservicekm: Float
  }

  # order by var_samp() on columns of table "courtesycars"
  input courtesycars_var_samp_order_by {
    dailycost: order_by
    fuel: order_by
    mileage: order_by
    nextservicekm: order_by
  }

  # aggregate variance on columns
  type courtesycars_variance_fields {
    dailycost: Float
    fuel: Float
    mileage: Float
    nextservicekm: Float
  }

  # order by variance() on columns of table "courtesycars"
  input courtesycars_variance_order_by {
    dailycost: order_by
    fuel: order_by
    mileage: order_by
    nextservicekm: order_by
  }

  # columns and relationships of "csi"
  type csi {
    # An object relationship
    bodyshop: bodyshops!
    bodyshopid: uuid!
    completedon: timestamptz
    created_at: timestamptz!

    # An object relationship
    csiquestion: csiquestions
    id: uuid!

    # An object relationship
    job: jobs!
    jobid: uuid!
    questionset: uuid
    relateddata(
      # JSON select path
      path: String
    ): jsonb
    response(
      # JSON select path
      path: String
    ): jsonb
    updated_at: timestamptz!
    valid: Boolean!
    validuntil: date
  }

  # aggregated selection of "csi"
  type csi_aggregate {
    aggregate: csi_aggregate_fields
    nodes: [csi!]!
  }

  # aggregate fields of "csi"
  type csi_aggregate_fields {
    count(columns: [csi_select_column!], distinct: Boolean): Int
    max: csi_max_fields
    min: csi_min_fields
  }

  # order by aggregate values of table "csi"
  input csi_aggregate_order_by {
    count: order_by
    max: csi_max_order_by
    min: csi_min_order_by
  }

  # append existing jsonb value of filtered columns with new jsonb value
  input csi_append_input {
    relateddata: jsonb
    response: jsonb
  }

  # input type for inserting array relation for remote table "csi"
  input csi_arr_rel_insert_input {
    data: [csi_insert_input!]!
    on_conflict: csi_on_conflict
  }

  # Boolean expression to filter rows from the table "csi". All fields are combined with a logical 'AND'.
  input csi_bool_exp {
    _and: [csi_bool_exp]
    _not: csi_bool_exp
    _or: [csi_bool_exp]
    bodyshop: bodyshops_bool_exp
    bodyshopid: uuid_comparison_exp
    completedon: timestamptz_comparison_exp
    created_at: timestamptz_comparison_exp
    csiquestion: csiquestions_bool_exp
    id: uuid_comparison_exp
    job: jobs_bool_exp
    jobid: uuid_comparison_exp
    questionset: uuid_comparison_exp
    relateddata: jsonb_comparison_exp
    response: jsonb_comparison_exp
    updated_at: timestamptz_comparison_exp
    valid: Boolean_comparison_exp
    validuntil: date_comparison_exp
  }

  # unique or primary key constraints on table "csi"
  enum csi_constraint {
    # unique or primary key constraint
    csiinvites_pkey
  }

  # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
  input csi_delete_at_path_input {
    relateddata: [String]
    response: [String]
  }

  # delete the array element with specified index (negative integers count from the
  # end). throws an error if top level container is not an array
  input csi_delete_elem_input {
    relateddata: Int
    response: Int
  }

  # delete key/value pair or string element. key/value pairs are matched based on their key value
  input csi_delete_key_input {
    relateddata: String
    response: String
  }

  # input type for inserting data into table "csi"
  input csi_insert_input {
    bodyshop: bodyshops_obj_rel_insert_input
    bodyshopid: uuid
    completedon: timestamptz
    created_at: timestamptz
    csiquestion: csiquestions_obj_rel_insert_input
    id: uuid
    job: jobs_obj_rel_insert_input
    jobid: uuid
    questionset: uuid
    relateddata: jsonb
    response: jsonb
    updated_at: timestamptz
    valid: Boolean
    validuntil: date
  }

  # aggregate max on columns
  type csi_max_fields {
    bodyshopid: uuid
    completedon: timestamptz
    created_at: timestamptz
    id: uuid
    jobid: uuid
    questionset: uuid
    updated_at: timestamptz
    validuntil: date
  }

  # order by max() on columns of table "csi"
  input csi_max_order_by {
    bodyshopid: order_by
    completedon: order_by
    created_at: order_by
    id: order_by
    jobid: order_by
    questionset: order_by
    updated_at: order_by
    validuntil: order_by
  }

  # aggregate min on columns
  type csi_min_fields {
    bodyshopid: uuid
    completedon: timestamptz
    created_at: timestamptz
    id: uuid
    jobid: uuid
    questionset: uuid
    updated_at: timestamptz
    validuntil: date
  }

  # order by min() on columns of table "csi"
  input csi_min_order_by {
    bodyshopid: order_by
    completedon: order_by
    created_at: order_by
    id: order_by
    jobid: order_by
    questionset: order_by
    updated_at: order_by
    validuntil: order_by
  }

  # response of any mutation on the table "csi"
  type csi_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [csi!]!
  }

  # input type for inserting object relation for remote table "csi"
  input csi_obj_rel_insert_input {
    data: csi_insert_input!
    on_conflict: csi_on_conflict
  }

  # on conflict condition type for table "csi"
  input csi_on_conflict {
    constraint: csi_constraint!
    update_columns: [csi_update_column!]!
    where: csi_bool_exp
  }

  # ordering options when selecting data from "csi"
  input csi_order_by {
    bodyshop: bodyshops_order_by
    bodyshopid: order_by
    completedon: order_by
    created_at: order_by
    csiquestion: csiquestions_order_by
    id: order_by
    job: jobs_order_by
    jobid: order_by
    questionset: order_by
    relateddata: order_by
    response: order_by
    updated_at: order_by
    valid: order_by
    validuntil: order_by
  }

  # primary key columns input for table: "csi"
  input csi_pk_columns_input {
    id: uuid!
  }

  # prepend existing jsonb value of filtered columns with new jsonb value
  input csi_prepend_input {
    relateddata: jsonb
    response: jsonb
  }

  # select columns of table "csi"
  enum csi_select_column {
    # column name
    bodyshopid

    # column name
    completedon

    # column name
    created_at

    # column name
    id

    # column name
    jobid

    # column name
    questionset

    # column name
    relateddata

    # column name
    response

    # column name
    updated_at

    # column name
    valid

    # column name
    validuntil
  }

  # input type for updating data in table "csi"
  input csi_set_input {
    bodyshopid: uuid
    completedon: timestamptz
    created_at: timestamptz
    id: uuid
    jobid: uuid
    questionset: uuid
    relateddata: jsonb
    response: jsonb
    updated_at: timestamptz
    valid: Boolean
    validuntil: date
  }

  # update columns of table "csi"
  enum csi_update_column {
    # column name
    bodyshopid

    # column name
    completedon

    # column name
    created_at

    # column name
    id

    # column name
    jobid

    # column name
    questionset

    # column name
    relateddata

    # column name
    response

    # column name
    updated_at

    # column name
    valid

    # column name
    validuntil
  }

  # columns and relationships of "csiquestions"
  type csiquestions {
    # An object relationship
    bodyshop: bodyshops!
    bodyshopid: uuid!
    config(
      # JSON select path
      path: String
    ): jsonb
    created_at: timestamptz!

    # An array relationship
    csis(
      # distinct select on columns
      distinct_on: [csi_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [csi_order_by!]

      # filter the rows returned
      where: csi_bool_exp
    ): [csi!]!

    # An aggregated array relationship
    csis_aggregate(
      # distinct select on columns
      distinct_on: [csi_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [csi_order_by!]

      # filter the rows returned
      where: csi_bool_exp
    ): csi_aggregate!
    current: Boolean!
    id: uuid!
    updated_at: timestamptz!
  }

  # aggregated selection of "csiquestions"
  type csiquestions_aggregate {
    aggregate: csiquestions_aggregate_fields
    nodes: [csiquestions!]!
  }

  # aggregate fields of "csiquestions"
  type csiquestions_aggregate_fields {
    count(columns: [csiquestions_select_column!], distinct: Boolean): Int
    max: csiquestions_max_fields
    min: csiquestions_min_fields
  }

  # order by aggregate values of table "csiquestions"
  input csiquestions_aggregate_order_by {
    count: order_by
    max: csiquestions_max_order_by
    min: csiquestions_min_order_by
  }

  # append existing jsonb value of filtered columns with new jsonb value
  input csiquestions_append_input {
    config: jsonb
  }

  # input type for inserting array relation for remote table "csiquestions"
  input csiquestions_arr_rel_insert_input {
    data: [csiquestions_insert_input!]!
    on_conflict: csiquestions_on_conflict
  }

  # Boolean expression to filter rows from the table "csiquestions". All fields are combined with a logical 'AND'.
  input csiquestions_bool_exp {
    _and: [csiquestions_bool_exp]
    _not: csiquestions_bool_exp
    _or: [csiquestions_bool_exp]
    bodyshop: bodyshops_bool_exp
    bodyshopid: uuid_comparison_exp
    config: jsonb_comparison_exp
    created_at: timestamptz_comparison_exp
    csis: csi_bool_exp
    current: Boolean_comparison_exp
    id: uuid_comparison_exp
    updated_at: timestamptz_comparison_exp
  }

  # unique or primary key constraints on table "csiquestions"
  enum csiquestions_constraint {
    # unique or primary key constraint
    csiquestion_pkey
  }

  # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
  input csiquestions_delete_at_path_input {
    config: [String]
  }

  # delete the array element with specified index (negative integers count from the
  # end). throws an error if top level container is not an array
  input csiquestions_delete_elem_input {
    config: Int
  }

  # delete key/value pair or string element. key/value pairs are matched based on their key value
  input csiquestions_delete_key_input {
    config: String
  }

  # input type for inserting data into table "csiquestions"
  input csiquestions_insert_input {
    bodyshop: bodyshops_obj_rel_insert_input
    bodyshopid: uuid
    config: jsonb
    created_at: timestamptz
    csis: csi_arr_rel_insert_input
    current: Boolean
    id: uuid
    updated_at: timestamptz
  }

  # aggregate max on columns
  type csiquestions_max_fields {
    bodyshopid: uuid
    created_at: timestamptz
    id: uuid
    updated_at: timestamptz
  }

  # order by max() on columns of table "csiquestions"
  input csiquestions_max_order_by {
    bodyshopid: order_by
    created_at: order_by
    id: order_by
    updated_at: order_by
  }

  # aggregate min on columns
  type csiquestions_min_fields {
    bodyshopid: uuid
    created_at: timestamptz
    id: uuid
    updated_at: timestamptz
  }

  # order by min() on columns of table "csiquestions"
  input csiquestions_min_order_by {
    bodyshopid: order_by
    created_at: order_by
    id: order_by
    updated_at: order_by
  }

  # response of any mutation on the table "csiquestions"
  type csiquestions_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [csiquestions!]!
  }

  # input type for inserting object relation for remote table "csiquestions"
  input csiquestions_obj_rel_insert_input {
    data: csiquestions_insert_input!
    on_conflict: csiquestions_on_conflict
  }

  # on conflict condition type for table "csiquestions"
  input csiquestions_on_conflict {
    constraint: csiquestions_constraint!
    update_columns: [csiquestions_update_column!]!
    where: csiquestions_bool_exp
  }

  # ordering options when selecting data from "csiquestions"
  input csiquestions_order_by {
    bodyshop: bodyshops_order_by
    bodyshopid: order_by
    config: order_by
    created_at: order_by
    csis_aggregate: csi_aggregate_order_by
    current: order_by
    id: order_by
    updated_at: order_by
  }

  # primary key columns input for table: "csiquestions"
  input csiquestions_pk_columns_input {
    id: uuid!
  }

  # prepend existing jsonb value of filtered columns with new jsonb value
  input csiquestions_prepend_input {
    config: jsonb
  }

  # select columns of table "csiquestions"
  enum csiquestions_select_column {
    # column name
    bodyshopid

    # column name
    config

    # column name
    created_at

    # column name
    current

    # column name
    id

    # column name
    updated_at
  }

  # input type for updating data in table "csiquestions"
  input csiquestions_set_input {
    bodyshopid: uuid
    config: jsonb
    created_at: timestamptz
    current: Boolean
    id: uuid
    updated_at: timestamptz
  }

  # update columns of table "csiquestions"
  enum csiquestions_update_column {
    # column name
    bodyshopid

    # column name
    config

    # column name
    created_at

    # column name
    current

    # column name
    id

    # column name
    updated_at
  }

  scalar date

  # expression to compare columns of type date. All fields are combined with logical 'AND'.
  input date_comparison_exp {
    _eq: date
    _gt: date
    _gte: date
    _in: [date!]
    _is_null: Boolean
    _lt: date
    _lte: date
    _neq: date
    _nin: [date!]
  }

  # columns and relationships of "documents"
  type documents {
    created_at: timestamptz!
    id: uuid!

    # An object relationship
    invoice: invoices
    invoiceid: uuid

    # An object relationship
    job: jobs!
    jobid: uuid!
    key: String!
    name: String
    type: String
    updated_at: timestamptz!
    uploaded_by: String!
  }

  # aggregated selection of "documents"
  type documents_aggregate {
    aggregate: documents_aggregate_fields
    nodes: [documents!]!
  }

  # aggregate fields of "documents"
  type documents_aggregate_fields {
    count(columns: [documents_select_column!], distinct: Boolean): Int
    max: documents_max_fields
    min: documents_min_fields
  }

  # order by aggregate values of table "documents"
  input documents_aggregate_order_by {
    count: order_by
    max: documents_max_order_by
    min: documents_min_order_by
  }

  # input type for inserting array relation for remote table "documents"
  input documents_arr_rel_insert_input {
    data: [documents_insert_input!]!
    on_conflict: documents_on_conflict
  }

  # Boolean expression to filter rows from the table "documents". All fields are combined with a logical 'AND'.
  input documents_bool_exp {
    _and: [documents_bool_exp]
    _not: documents_bool_exp
    _or: [documents_bool_exp]
    created_at: timestamptz_comparison_exp
    id: uuid_comparison_exp
    invoice: invoices_bool_exp
    invoiceid: uuid_comparison_exp
    job: jobs_bool_exp
    jobid: uuid_comparison_exp
    key: String_comparison_exp
    name: String_comparison_exp
    type: String_comparison_exp
    updated_at: timestamptz_comparison_exp
    uploaded_by: String_comparison_exp
  }

  # unique or primary key constraints on table "documents"
  enum documents_constraint {
    # unique or primary key constraint
    documents_pkey
  }

  # input type for inserting data into table "documents"
  input documents_insert_input {
    created_at: timestamptz
    id: uuid
    invoice: invoices_obj_rel_insert_input
    invoiceid: uuid
    job: jobs_obj_rel_insert_input
    jobid: uuid
    key: String
    name: String
    type: String
    updated_at: timestamptz
    uploaded_by: String
  }

  # aggregate max on columns
  type documents_max_fields {
    created_at: timestamptz
    id: uuid
    invoiceid: uuid
    jobid: uuid
    key: String
    name: String
    type: String
    updated_at: timestamptz
    uploaded_by: String
  }

  # order by max() on columns of table "documents"
  input documents_max_order_by {
    created_at: order_by
    id: order_by
    invoiceid: order_by
    jobid: order_by
    key: order_by
    name: order_by
    type: order_by
    updated_at: order_by
    uploaded_by: order_by
  }

  # aggregate min on columns
  type documents_min_fields {
    created_at: timestamptz
    id: uuid
    invoiceid: uuid
    jobid: uuid
    key: String
    name: String
    type: String
    updated_at: timestamptz
    uploaded_by: String
  }

  # order by min() on columns of table "documents"
  input documents_min_order_by {
    created_at: order_by
    id: order_by
    invoiceid: order_by
    jobid: order_by
    key: order_by
    name: order_by
    type: order_by
    updated_at: order_by
    uploaded_by: order_by
  }

  # response of any mutation on the table "documents"
  type documents_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [documents!]!
  }

  # input type for inserting object relation for remote table "documents"
  input documents_obj_rel_insert_input {
    data: documents_insert_input!
    on_conflict: documents_on_conflict
  }

  # on conflict condition type for table "documents"
  input documents_on_conflict {
    constraint: documents_constraint!
    update_columns: [documents_update_column!]!
    where: documents_bool_exp
  }

  # ordering options when selecting data from "documents"
  input documents_order_by {
    created_at: order_by
    id: order_by
    invoice: invoices_order_by
    invoiceid: order_by
    job: jobs_order_by
    jobid: order_by
    key: order_by
    name: order_by
    type: order_by
    updated_at: order_by
    uploaded_by: order_by
  }

  # primary key columns input for table: "documents"
  input documents_pk_columns_input {
    id: uuid!
  }

  # select columns of table "documents"
  enum documents_select_column {
    # column name
    created_at

    # column name
    id

    # column name
    invoiceid

    # column name
    jobid

    # column name
    key

    # column name
    name

    # column name
    type

    # column name
    updated_at

    # column name
    uploaded_by
  }

  # input type for updating data in table "documents"
  input documents_set_input {
    created_at: timestamptz
    id: uuid
    invoiceid: uuid
    jobid: uuid
    key: String
    name: String
    type: String
    updated_at: timestamptz
    uploaded_by: String
  }

  # update columns of table "documents"
  enum documents_update_column {
    # column name
    created_at

    # column name
    id

    # column name
    invoiceid

    # column name
    jobid

    # column name
    key

    # column name
    name

    # column name
    type

    # column name
    updated_at

    # column name
    uploaded_by
  }

  # columns and relationships of "employees"
  type employees {
    active: Boolean!

    # An array relationship
    allocations(
      # distinct select on columns
      distinct_on: [allocations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [allocations_order_by!]

      # filter the rows returned
      where: allocations_bool_exp
    ): [allocations!]!

    # An aggregated array relationship
    allocations_aggregate(
      # distinct select on columns
      distinct_on: [allocations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [allocations_order_by!]

      # filter the rows returned
      where: allocations_bool_exp
    ): allocations_aggregate!
    base_rate: numeric!

    # An object relationship
    bodyshop: bodyshops!
    cost_center: String!
    created_at: timestamptz!
    employee_number: String
    first_name: String!
    flat_rate: Boolean!
    hire_date: date
    id: uuid!

    # An array relationship
    jobs(
      # distinct select on columns
      distinct_on: [jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [jobs_order_by!]

      # filter the rows returned
      where: jobs_bool_exp
    ): [jobs!]!

    # An array relationship
    jobsByEmployeePrep(
      # distinct select on columns
      distinct_on: [jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [jobs_order_by!]

      # filter the rows returned
      where: jobs_bool_exp
    ): [jobs!]!

    # An aggregated array relationship
    jobsByEmployeePrep_aggregate(
      # distinct select on columns
      distinct_on: [jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [jobs_order_by!]

      # filter the rows returned
      where: jobs_bool_exp
    ): jobs_aggregate!

    # An array relationship
    jobsByEmployeeRefinish(
      # distinct select on columns
      distinct_on: [jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [jobs_order_by!]

      # filter the rows returned
      where: jobs_bool_exp
    ): [jobs!]!

    # An aggregated array relationship
    jobsByEmployeeRefinish_aggregate(
      # distinct select on columns
      distinct_on: [jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [jobs_order_by!]

      # filter the rows returned
      where: jobs_bool_exp
    ): jobs_aggregate!

    # An aggregated array relationship
    jobs_aggregate(
      # distinct select on columns
      distinct_on: [jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [jobs_order_by!]

      # filter the rows returned
      where: jobs_bool_exp
    ): jobs_aggregate!
    last_name: String!
    pin: String
    shopid: uuid!
    termination_date: date

    # An array relationship
    timetickets(
      # distinct select on columns
      distinct_on: [timetickets_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [timetickets_order_by!]

      # filter the rows returned
      where: timetickets_bool_exp
    ): [timetickets!]!

    # An aggregated array relationship
    timetickets_aggregate(
      # distinct select on columns
      distinct_on: [timetickets_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [timetickets_order_by!]

      # filter the rows returned
      where: timetickets_bool_exp
    ): timetickets_aggregate!
    updated_at: timestamptz!

    # An object relationship
    user: users
    user_email: String
  }

  # aggregated selection of "employees"
  type employees_aggregate {
    aggregate: employees_aggregate_fields
    nodes: [employees!]!
  }

  # aggregate fields of "employees"
  type employees_aggregate_fields {
    avg: employees_avg_fields
    count(columns: [employees_select_column!], distinct: Boolean): Int
    max: employees_max_fields
    min: employees_min_fields
    stddev: employees_stddev_fields
    stddev_pop: employees_stddev_pop_fields
    stddev_samp: employees_stddev_samp_fields
    sum: employees_sum_fields
    var_pop: employees_var_pop_fields
    var_samp: employees_var_samp_fields
    variance: employees_variance_fields
  }

  # order by aggregate values of table "employees"
  input employees_aggregate_order_by {
    avg: employees_avg_order_by
    count: order_by
    max: employees_max_order_by
    min: employees_min_order_by
    stddev: employees_stddev_order_by
    stddev_pop: employees_stddev_pop_order_by
    stddev_samp: employees_stddev_samp_order_by
    sum: employees_sum_order_by
    var_pop: employees_var_pop_order_by
    var_samp: employees_var_samp_order_by
    variance: employees_variance_order_by
  }

  # input type for inserting array relation for remote table "employees"
  input employees_arr_rel_insert_input {
    data: [employees_insert_input!]!
    on_conflict: employees_on_conflict
  }

  # aggregate avg on columns
  type employees_avg_fields {
    base_rate: Float
  }

  # order by avg() on columns of table "employees"
  input employees_avg_order_by {
    base_rate: order_by
  }

  # Boolean expression to filter rows from the table "employees". All fields are combined with a logical 'AND'.
  input employees_bool_exp {
    _and: [employees_bool_exp]
    _not: employees_bool_exp
    _or: [employees_bool_exp]
    active: Boolean_comparison_exp
    allocations: allocations_bool_exp
    base_rate: numeric_comparison_exp
    bodyshop: bodyshops_bool_exp
    cost_center: String_comparison_exp
    created_at: timestamptz_comparison_exp
    employee_number: String_comparison_exp
    first_name: String_comparison_exp
    flat_rate: Boolean_comparison_exp
    hire_date: date_comparison_exp
    id: uuid_comparison_exp
    jobs: jobs_bool_exp
    jobsByEmployeePrep: jobs_bool_exp
    jobsByEmployeeRefinish: jobs_bool_exp
    last_name: String_comparison_exp
    pin: String_comparison_exp
    shopid: uuid_comparison_exp
    termination_date: date_comparison_exp
    timetickets: timetickets_bool_exp
    updated_at: timestamptz_comparison_exp
    user: users_bool_exp
    user_email: String_comparison_exp
  }

  # unique or primary key constraints on table "employees"
  enum employees_constraint {
    # unique or primary key constraint
    employees_pkey

    # unique or primary key constraint
    employees_user_email_key
  }

  # input type for incrementing integer column in table "employees"
  input employees_inc_input {
    base_rate: numeric
  }

  # input type for inserting data into table "employees"
  input employees_insert_input {
    active: Boolean
    allocations: allocations_arr_rel_insert_input
    base_rate: numeric
    bodyshop: bodyshops_obj_rel_insert_input
    cost_center: String
    created_at: timestamptz
    employee_number: String
    first_name: String
    flat_rate: Boolean
    hire_date: date
    id: uuid
    jobs: jobs_arr_rel_insert_input
    jobsByEmployeePrep: jobs_arr_rel_insert_input
    jobsByEmployeeRefinish: jobs_arr_rel_insert_input
    last_name: String
    pin: String
    shopid: uuid
    termination_date: date
    timetickets: timetickets_arr_rel_insert_input
    updated_at: timestamptz
    user: users_obj_rel_insert_input
    user_email: String
  }

  # aggregate max on columns
  type employees_max_fields {
    base_rate: numeric
    cost_center: String
    created_at: timestamptz
    employee_number: String
    first_name: String
    hire_date: date
    id: uuid
    last_name: String
    pin: String
    shopid: uuid
    termination_date: date
    updated_at: timestamptz
    user_email: String
  }

  # order by max() on columns of table "employees"
  input employees_max_order_by {
    base_rate: order_by
    cost_center: order_by
    created_at: order_by
    employee_number: order_by
    first_name: order_by
    hire_date: order_by
    id: order_by
    last_name: order_by
    pin: order_by
    shopid: order_by
    termination_date: order_by
    updated_at: order_by
    user_email: order_by
  }

  # aggregate min on columns
  type employees_min_fields {
    base_rate: numeric
    cost_center: String
    created_at: timestamptz
    employee_number: String
    first_name: String
    hire_date: date
    id: uuid
    last_name: String
    pin: String
    shopid: uuid
    termination_date: date
    updated_at: timestamptz
    user_email: String
  }

  # order by min() on columns of table "employees"
  input employees_min_order_by {
    base_rate: order_by
    cost_center: order_by
    created_at: order_by
    employee_number: order_by
    first_name: order_by
    hire_date: order_by
    id: order_by
    last_name: order_by
    pin: order_by
    shopid: order_by
    termination_date: order_by
    updated_at: order_by
    user_email: order_by
  }

  # response of any mutation on the table "employees"
  type employees_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [employees!]!
  }

  # input type for inserting object relation for remote table "employees"
  input employees_obj_rel_insert_input {
    data: employees_insert_input!
    on_conflict: employees_on_conflict
  }

  # on conflict condition type for table "employees"
  input employees_on_conflict {
    constraint: employees_constraint!
    update_columns: [employees_update_column!]!
    where: employees_bool_exp
  }

  # ordering options when selecting data from "employees"
  input employees_order_by {
    active: order_by
    allocations_aggregate: allocations_aggregate_order_by
    base_rate: order_by
    bodyshop: bodyshops_order_by
    cost_center: order_by
    created_at: order_by
    employee_number: order_by
    first_name: order_by
    flat_rate: order_by
    hire_date: order_by
    id: order_by
    jobsByEmployeePrep_aggregate: jobs_aggregate_order_by
    jobsByEmployeeRefinish_aggregate: jobs_aggregate_order_by
    jobs_aggregate: jobs_aggregate_order_by
    last_name: order_by
    pin: order_by
    shopid: order_by
    termination_date: order_by
    timetickets_aggregate: timetickets_aggregate_order_by
    updated_at: order_by
    user: users_order_by
    user_email: order_by
  }

  # primary key columns input for table: "employees"
  input employees_pk_columns_input {
    id: uuid!
  }

  # select columns of table "employees"
  enum employees_select_column {
    # column name
    active

    # column name
    base_rate

    # column name
    cost_center

    # column name
    created_at

    # column name
    employee_number

    # column name
    first_name

    # column name
    flat_rate

    # column name
    hire_date

    # column name
    id

    # column name
    last_name

    # column name
    pin

    # column name
    shopid

    # column name
    termination_date

    # column name
    updated_at

    # column name
    user_email
  }

  # input type for updating data in table "employees"
  input employees_set_input {
    active: Boolean
    base_rate: numeric
    cost_center: String
    created_at: timestamptz
    employee_number: String
    first_name: String
    flat_rate: Boolean
    hire_date: date
    id: uuid
    last_name: String
    pin: String
    shopid: uuid
    termination_date: date
    updated_at: timestamptz
    user_email: String
  }

  # aggregate stddev on columns
  type employees_stddev_fields {
    base_rate: Float
  }

  # order by stddev() on columns of table "employees"
  input employees_stddev_order_by {
    base_rate: order_by
  }

  # aggregate stddev_pop on columns
  type employees_stddev_pop_fields {
    base_rate: Float
  }

  # order by stddev_pop() on columns of table "employees"
  input employees_stddev_pop_order_by {
    base_rate: order_by
  }

  # aggregate stddev_samp on columns
  type employees_stddev_samp_fields {
    base_rate: Float
  }

  # order by stddev_samp() on columns of table "employees"
  input employees_stddev_samp_order_by {
    base_rate: order_by
  }

  # aggregate sum on columns
  type employees_sum_fields {
    base_rate: numeric
  }

  # order by sum() on columns of table "employees"
  input employees_sum_order_by {
    base_rate: order_by
  }

  # update columns of table "employees"
  enum employees_update_column {
    # column name
    active

    # column name
    base_rate

    # column name
    cost_center

    # column name
    created_at

    # column name
    employee_number

    # column name
    first_name

    # column name
    flat_rate

    # column name
    hire_date

    # column name
    id

    # column name
    last_name

    # column name
    pin

    # column name
    shopid

    # column name
    termination_date

    # column name
    updated_at

    # column name
    user_email
  }

  # aggregate var_pop on columns
  type employees_var_pop_fields {
    base_rate: Float
  }

  # order by var_pop() on columns of table "employees"
  input employees_var_pop_order_by {
    base_rate: order_by
  }

  # aggregate var_samp on columns
  type employees_var_samp_fields {
    base_rate: Float
  }

  # order by var_samp() on columns of table "employees"
  input employees_var_samp_order_by {
    base_rate: order_by
  }

  # aggregate variance on columns
  type employees_variance_fields {
    base_rate: Float
  }

  # order by variance() on columns of table "employees"
  input employees_variance_order_by {
    base_rate: order_by
  }

  # expression to compare columns of type Int. All fields are combined with logical 'AND'.
  input Int_comparison_exp {
    _eq: Int
    _gt: Int
    _gte: Int
    _in: [Int!]
    _is_null: Boolean
    _lt: Int
    _lte: Int
    _neq: Int
    _nin: [Int!]
  }

  # columns and relationships of "invoicelines"
  type invoicelines {
    actual_cost: numeric!
    actual_price: numeric!
    applicable_taxes(
      # JSON select path
      path: String
    ): jsonb
    cost_center: String!
    created_at: timestamptz!
    id: uuid!

    # An object relationship
    invoice: invoices!
    invoiceid: uuid!
    joblineid: uuid
    line_desc: String
    quantity: Int!
    updated_at: timestamptz!
  }

  # aggregated selection of "invoicelines"
  type invoicelines_aggregate {
    aggregate: invoicelines_aggregate_fields
    nodes: [invoicelines!]!
  }

  # aggregate fields of "invoicelines"
  type invoicelines_aggregate_fields {
    avg: invoicelines_avg_fields
    count(columns: [invoicelines_select_column!], distinct: Boolean): Int
    max: invoicelines_max_fields
    min: invoicelines_min_fields
    stddev: invoicelines_stddev_fields
    stddev_pop: invoicelines_stddev_pop_fields
    stddev_samp: invoicelines_stddev_samp_fields
    sum: invoicelines_sum_fields
    var_pop: invoicelines_var_pop_fields
    var_samp: invoicelines_var_samp_fields
    variance: invoicelines_variance_fields
  }

  # order by aggregate values of table "invoicelines"
  input invoicelines_aggregate_order_by {
    avg: invoicelines_avg_order_by
    count: order_by
    max: invoicelines_max_order_by
    min: invoicelines_min_order_by
    stddev: invoicelines_stddev_order_by
    stddev_pop: invoicelines_stddev_pop_order_by
    stddev_samp: invoicelines_stddev_samp_order_by
    sum: invoicelines_sum_order_by
    var_pop: invoicelines_var_pop_order_by
    var_samp: invoicelines_var_samp_order_by
    variance: invoicelines_variance_order_by
  }

  # append existing jsonb value of filtered columns with new jsonb value
  input invoicelines_append_input {
    applicable_taxes: jsonb
  }

  # input type for inserting array relation for remote table "invoicelines"
  input invoicelines_arr_rel_insert_input {
    data: [invoicelines_insert_input!]!
    on_conflict: invoicelines_on_conflict
  }

  # aggregate avg on columns
  type invoicelines_avg_fields {
    actual_cost: Float
    actual_price: Float
    quantity: Float
  }

  # order by avg() on columns of table "invoicelines"
  input invoicelines_avg_order_by {
    actual_cost: order_by
    actual_price: order_by
    quantity: order_by
  }

  # Boolean expression to filter rows from the table "invoicelines". All fields are combined with a logical 'AND'.
  input invoicelines_bool_exp {
    _and: [invoicelines_bool_exp]
    _not: invoicelines_bool_exp
    _or: [invoicelines_bool_exp]
    actual_cost: numeric_comparison_exp
    actual_price: numeric_comparison_exp
    applicable_taxes: jsonb_comparison_exp
    cost_center: String_comparison_exp
    created_at: timestamptz_comparison_exp
    id: uuid_comparison_exp
    invoice: invoices_bool_exp
    invoiceid: uuid_comparison_exp
    joblineid: uuid_comparison_exp
    line_desc: String_comparison_exp
    quantity: Int_comparison_exp
    updated_at: timestamptz_comparison_exp
  }

  # unique or primary key constraints on table "invoicelines"
  enum invoicelines_constraint {
    # unique or primary key constraint
    invoicelines_pkey
  }

  # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
  input invoicelines_delete_at_path_input {
    applicable_taxes: [String]
  }

  # delete the array element with specified index (negative integers count from the
  # end). throws an error if top level container is not an array
  input invoicelines_delete_elem_input {
    applicable_taxes: Int
  }

  # delete key/value pair or string element. key/value pairs are matched based on their key value
  input invoicelines_delete_key_input {
    applicable_taxes: String
  }

  # input type for incrementing integer column in table "invoicelines"
  input invoicelines_inc_input {
    actual_cost: numeric
    actual_price: numeric
    quantity: Int
  }

  # input type for inserting data into table "invoicelines"
  input invoicelines_insert_input {
    actual_cost: numeric
    actual_price: numeric
    applicable_taxes: jsonb
    cost_center: String
    created_at: timestamptz
    id: uuid
    invoice: invoices_obj_rel_insert_input
    invoiceid: uuid
    joblineid: uuid
    line_desc: String
    quantity: Int
    updated_at: timestamptz
  }

  # aggregate max on columns
  type invoicelines_max_fields {
    actual_cost: numeric
    actual_price: numeric
    cost_center: String
    created_at: timestamptz
    id: uuid
    invoiceid: uuid
    joblineid: uuid
    line_desc: String
    quantity: Int
    updated_at: timestamptz
  }

  # order by max() on columns of table "invoicelines"
  input invoicelines_max_order_by {
    actual_cost: order_by
    actual_price: order_by
    cost_center: order_by
    created_at: order_by
    id: order_by
    invoiceid: order_by
    joblineid: order_by
    line_desc: order_by
    quantity: order_by
    updated_at: order_by
  }

  # aggregate min on columns
  type invoicelines_min_fields {
    actual_cost: numeric
    actual_price: numeric
    cost_center: String
    created_at: timestamptz
    id: uuid
    invoiceid: uuid
    joblineid: uuid
    line_desc: String
    quantity: Int
    updated_at: timestamptz
  }

  # order by min() on columns of table "invoicelines"
  input invoicelines_min_order_by {
    actual_cost: order_by
    actual_price: order_by
    cost_center: order_by
    created_at: order_by
    id: order_by
    invoiceid: order_by
    joblineid: order_by
    line_desc: order_by
    quantity: order_by
    updated_at: order_by
  }

  # response of any mutation on the table "invoicelines"
  type invoicelines_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [invoicelines!]!
  }

  # input type for inserting object relation for remote table "invoicelines"
  input invoicelines_obj_rel_insert_input {
    data: invoicelines_insert_input!
    on_conflict: invoicelines_on_conflict
  }

  # on conflict condition type for table "invoicelines"
  input invoicelines_on_conflict {
    constraint: invoicelines_constraint!
    update_columns: [invoicelines_update_column!]!
    where: invoicelines_bool_exp
  }

  # ordering options when selecting data from "invoicelines"
  input invoicelines_order_by {
    actual_cost: order_by
    actual_price: order_by
    applicable_taxes: order_by
    cost_center: order_by
    created_at: order_by
    id: order_by
    invoice: invoices_order_by
    invoiceid: order_by
    joblineid: order_by
    line_desc: order_by
    quantity: order_by
    updated_at: order_by
  }

  # primary key columns input for table: "invoicelines"
  input invoicelines_pk_columns_input {
    id: uuid!
  }

  # prepend existing jsonb value of filtered columns with new jsonb value
  input invoicelines_prepend_input {
    applicable_taxes: jsonb
  }

  # select columns of table "invoicelines"
  enum invoicelines_select_column {
    # column name
    actual_cost

    # column name
    actual_price

    # column name
    applicable_taxes

    # column name
    cost_center

    # column name
    created_at

    # column name
    id

    # column name
    invoiceid

    # column name
    joblineid

    # column name
    line_desc

    # column name
    quantity

    # column name
    updated_at
  }

  # input type for updating data in table "invoicelines"
  input invoicelines_set_input {
    actual_cost: numeric
    actual_price: numeric
    applicable_taxes: jsonb
    cost_center: String
    created_at: timestamptz
    id: uuid
    invoiceid: uuid
    joblineid: uuid
    line_desc: String
    quantity: Int
    updated_at: timestamptz
  }

  # aggregate stddev on columns
  type invoicelines_stddev_fields {
    actual_cost: Float
    actual_price: Float
    quantity: Float
  }

  # order by stddev() on columns of table "invoicelines"
  input invoicelines_stddev_order_by {
    actual_cost: order_by
    actual_price: order_by
    quantity: order_by
  }

  # aggregate stddev_pop on columns
  type invoicelines_stddev_pop_fields {
    actual_cost: Float
    actual_price: Float
    quantity: Float
  }

  # order by stddev_pop() on columns of table "invoicelines"
  input invoicelines_stddev_pop_order_by {
    actual_cost: order_by
    actual_price: order_by
    quantity: order_by
  }

  # aggregate stddev_samp on columns
  type invoicelines_stddev_samp_fields {
    actual_cost: Float
    actual_price: Float
    quantity: Float
  }

  # order by stddev_samp() on columns of table "invoicelines"
  input invoicelines_stddev_samp_order_by {
    actual_cost: order_by
    actual_price: order_by
    quantity: order_by
  }

  # aggregate sum on columns
  type invoicelines_sum_fields {
    actual_cost: numeric
    actual_price: numeric
    quantity: Int
  }

  # order by sum() on columns of table "invoicelines"
  input invoicelines_sum_order_by {
    actual_cost: order_by
    actual_price: order_by
    quantity: order_by
  }

  # update columns of table "invoicelines"
  enum invoicelines_update_column {
    # column name
    actual_cost

    # column name
    actual_price

    # column name
    applicable_taxes

    # column name
    cost_center

    # column name
    created_at

    # column name
    id

    # column name
    invoiceid

    # column name
    joblineid

    # column name
    line_desc

    # column name
    quantity

    # column name
    updated_at
  }

  # aggregate var_pop on columns
  type invoicelines_var_pop_fields {
    actual_cost: Float
    actual_price: Float
    quantity: Float
  }

  # order by var_pop() on columns of table "invoicelines"
  input invoicelines_var_pop_order_by {
    actual_cost: order_by
    actual_price: order_by
    quantity: order_by
  }

  # aggregate var_samp on columns
  type invoicelines_var_samp_fields {
    actual_cost: Float
    actual_price: Float
    quantity: Float
  }

  # order by var_samp() on columns of table "invoicelines"
  input invoicelines_var_samp_order_by {
    actual_cost: order_by
    actual_price: order_by
    quantity: order_by
  }

  # aggregate variance on columns
  type invoicelines_variance_fields {
    actual_cost: Float
    actual_price: Float
    quantity: Float
  }

  # order by variance() on columns of table "invoicelines"
  input invoicelines_variance_order_by {
    actual_cost: order_by
    actual_price: order_by
    quantity: order_by
  }

  # columns and relationships of "invoices"
  type invoices {
    created_at: timestamptz!
    date: date!

    # An array relationship
    documents(
      # distinct select on columns
      distinct_on: [documents_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [documents_order_by!]

      # filter the rows returned
      where: documents_bool_exp
    ): [documents!]!

    # An aggregated array relationship
    documents_aggregate(
      # distinct select on columns
      distinct_on: [documents_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [documents_order_by!]

      # filter the rows returned
      where: documents_bool_exp
    ): documents_aggregate!
    due_date: date
    exported: Boolean!
    exported_at: timestamptz
    federal_tax_rate: numeric!
    id: uuid!
    invoice_number: String!

    # An array relationship
    invoicelines(
      # distinct select on columns
      distinct_on: [invoicelines_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [invoicelines_order_by!]

      # filter the rows returned
      where: invoicelines_bool_exp
    ): [invoicelines!]!

    # An aggregated array relationship
    invoicelines_aggregate(
      # distinct select on columns
      distinct_on: [invoicelines_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [invoicelines_order_by!]

      # filter the rows returned
      where: invoicelines_bool_exp
    ): invoicelines_aggregate!
    is_credit_memo: Boolean!

    # An object relationship
    job: jobs!
    jobid: uuid!
    local_tax_rate: numeric!

    # An array relationship
    parts_orders(
      # distinct select on columns
      distinct_on: [parts_orders_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [parts_orders_order_by!]

      # filter the rows returned
      where: parts_orders_bool_exp
    ): [parts_orders!]!

    # An aggregated array relationship
    parts_orders_aggregate(
      # distinct select on columns
      distinct_on: [parts_orders_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [parts_orders_order_by!]

      # filter the rows returned
      where: parts_orders_bool_exp
    ): parts_orders_aggregate!
    state_tax_rate: numeric!
    total: numeric!
    updated_at: timestamptz!

    # An object relationship
    vendor: vendors!
    vendorid: uuid!
  }

  # aggregated selection of "invoices"
  type invoices_aggregate {
    aggregate: invoices_aggregate_fields
    nodes: [invoices!]!
  }

  # aggregate fields of "invoices"
  type invoices_aggregate_fields {
    avg: invoices_avg_fields
    count(columns: [invoices_select_column!], distinct: Boolean): Int
    max: invoices_max_fields
    min: invoices_min_fields
    stddev: invoices_stddev_fields
    stddev_pop: invoices_stddev_pop_fields
    stddev_samp: invoices_stddev_samp_fields
    sum: invoices_sum_fields
    var_pop: invoices_var_pop_fields
    var_samp: invoices_var_samp_fields
    variance: invoices_variance_fields
  }

  # order by aggregate values of table "invoices"
  input invoices_aggregate_order_by {
    avg: invoices_avg_order_by
    count: order_by
    max: invoices_max_order_by
    min: invoices_min_order_by
    stddev: invoices_stddev_order_by
    stddev_pop: invoices_stddev_pop_order_by
    stddev_samp: invoices_stddev_samp_order_by
    sum: invoices_sum_order_by
    var_pop: invoices_var_pop_order_by
    var_samp: invoices_var_samp_order_by
    variance: invoices_variance_order_by
  }

  # input type for inserting array relation for remote table "invoices"
  input invoices_arr_rel_insert_input {
    data: [invoices_insert_input!]!
    on_conflict: invoices_on_conflict
  }

  # aggregate avg on columns
  type invoices_avg_fields {
    federal_tax_rate: Float
    local_tax_rate: Float
    state_tax_rate: Float
    total: Float
  }

  # order by avg() on columns of table "invoices"
  input invoices_avg_order_by {
    federal_tax_rate: order_by
    local_tax_rate: order_by
    state_tax_rate: order_by
    total: order_by
  }

  # Boolean expression to filter rows from the table "invoices". All fields are combined with a logical 'AND'.
  input invoices_bool_exp {
    _and: [invoices_bool_exp]
    _not: invoices_bool_exp
    _or: [invoices_bool_exp]
    created_at: timestamptz_comparison_exp
    date: date_comparison_exp
    documents: documents_bool_exp
    due_date: date_comparison_exp
    exported: Boolean_comparison_exp
    exported_at: timestamptz_comparison_exp
    federal_tax_rate: numeric_comparison_exp
    id: uuid_comparison_exp
    invoice_number: String_comparison_exp
    invoicelines: invoicelines_bool_exp
    is_credit_memo: Boolean_comparison_exp
    job: jobs_bool_exp
    jobid: uuid_comparison_exp
    local_tax_rate: numeric_comparison_exp
    parts_orders: parts_orders_bool_exp
    state_tax_rate: numeric_comparison_exp
    total: numeric_comparison_exp
    updated_at: timestamptz_comparison_exp
    vendor: vendors_bool_exp
    vendorid: uuid_comparison_exp
  }

  # unique or primary key constraints on table "invoices"
  enum invoices_constraint {
    # unique or primary key constraint
    invoices_pkey
  }

  # input type for incrementing integer column in table "invoices"
  input invoices_inc_input {
    federal_tax_rate: numeric
    local_tax_rate: numeric
    state_tax_rate: numeric
    total: numeric
  }

  # input type for inserting data into table "invoices"
  input invoices_insert_input {
    created_at: timestamptz
    date: date
    documents: documents_arr_rel_insert_input
    due_date: date
    exported: Boolean
    exported_at: timestamptz
    federal_tax_rate: numeric
    id: uuid
    invoice_number: String
    invoicelines: invoicelines_arr_rel_insert_input
    is_credit_memo: Boolean
    job: jobs_obj_rel_insert_input
    jobid: uuid
    local_tax_rate: numeric
    parts_orders: parts_orders_arr_rel_insert_input
    state_tax_rate: numeric
    total: numeric
    updated_at: timestamptz
    vendor: vendors_obj_rel_insert_input
    vendorid: uuid
  }

  # aggregate max on columns
  type invoices_max_fields {
    created_at: timestamptz
    date: date
    due_date: date
    exported_at: timestamptz
    federal_tax_rate: numeric
    id: uuid
    invoice_number: String
    jobid: uuid
    local_tax_rate: numeric
    state_tax_rate: numeric
    total: numeric
    updated_at: timestamptz
    vendorid: uuid
  }

  # order by max() on columns of table "invoices"
  input invoices_max_order_by {
    created_at: order_by
    date: order_by
    due_date: order_by
    exported_at: order_by
    federal_tax_rate: order_by
    id: order_by
    invoice_number: order_by
    jobid: order_by
    local_tax_rate: order_by
    state_tax_rate: order_by
    total: order_by
    updated_at: order_by
    vendorid: order_by
  }

  # aggregate min on columns
  type invoices_min_fields {
    created_at: timestamptz
    date: date
    due_date: date
    exported_at: timestamptz
    federal_tax_rate: numeric
    id: uuid
    invoice_number: String
    jobid: uuid
    local_tax_rate: numeric
    state_tax_rate: numeric
    total: numeric
    updated_at: timestamptz
    vendorid: uuid
  }

  # order by min() on columns of table "invoices"
  input invoices_min_order_by {
    created_at: order_by
    date: order_by
    due_date: order_by
    exported_at: order_by
    federal_tax_rate: order_by
    id: order_by
    invoice_number: order_by
    jobid: order_by
    local_tax_rate: order_by
    state_tax_rate: order_by
    total: order_by
    updated_at: order_by
    vendorid: order_by
  }

  # response of any mutation on the table "invoices"
  type invoices_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [invoices!]!
  }

  # input type for inserting object relation for remote table "invoices"
  input invoices_obj_rel_insert_input {
    data: invoices_insert_input!
    on_conflict: invoices_on_conflict
  }

  # on conflict condition type for table "invoices"
  input invoices_on_conflict {
    constraint: invoices_constraint!
    update_columns: [invoices_update_column!]!
    where: invoices_bool_exp
  }

  # ordering options when selecting data from "invoices"
  input invoices_order_by {
    created_at: order_by
    date: order_by
    documents_aggregate: documents_aggregate_order_by
    due_date: order_by
    exported: order_by
    exported_at: order_by
    federal_tax_rate: order_by
    id: order_by
    invoice_number: order_by
    invoicelines_aggregate: invoicelines_aggregate_order_by
    is_credit_memo: order_by
    job: jobs_order_by
    jobid: order_by
    local_tax_rate: order_by
    parts_orders_aggregate: parts_orders_aggregate_order_by
    state_tax_rate: order_by
    total: order_by
    updated_at: order_by
    vendor: vendors_order_by
    vendorid: order_by
  }

  # primary key columns input for table: "invoices"
  input invoices_pk_columns_input {
    id: uuid!
  }

  # select columns of table "invoices"
  enum invoices_select_column {
    # column name
    created_at

    # column name
    date

    # column name
    due_date

    # column name
    exported

    # column name
    exported_at

    # column name
    federal_tax_rate

    # column name
    id

    # column name
    invoice_number

    # column name
    is_credit_memo

    # column name
    jobid

    # column name
    local_tax_rate

    # column name
    state_tax_rate

    # column name
    total

    # column name
    updated_at

    # column name
    vendorid
  }

  # input type for updating data in table "invoices"
  input invoices_set_input {
    created_at: timestamptz
    date: date
    due_date: date
    exported: Boolean
    exported_at: timestamptz
    federal_tax_rate: numeric
    id: uuid
    invoice_number: String
    is_credit_memo: Boolean
    jobid: uuid
    local_tax_rate: numeric
    state_tax_rate: numeric
    total: numeric
    updated_at: timestamptz
    vendorid: uuid
  }

  # aggregate stddev on columns
  type invoices_stddev_fields {
    federal_tax_rate: Float
    local_tax_rate: Float
    state_tax_rate: Float
    total: Float
  }

  # order by stddev() on columns of table "invoices"
  input invoices_stddev_order_by {
    federal_tax_rate: order_by
    local_tax_rate: order_by
    state_tax_rate: order_by
    total: order_by
  }

  # aggregate stddev_pop on columns
  type invoices_stddev_pop_fields {
    federal_tax_rate: Float
    local_tax_rate: Float
    state_tax_rate: Float
    total: Float
  }

  # order by stddev_pop() on columns of table "invoices"
  input invoices_stddev_pop_order_by {
    federal_tax_rate: order_by
    local_tax_rate: order_by
    state_tax_rate: order_by
    total: order_by
  }

  # aggregate stddev_samp on columns
  type invoices_stddev_samp_fields {
    federal_tax_rate: Float
    local_tax_rate: Float
    state_tax_rate: Float
    total: Float
  }

  # order by stddev_samp() on columns of table "invoices"
  input invoices_stddev_samp_order_by {
    federal_tax_rate: order_by
    local_tax_rate: order_by
    state_tax_rate: order_by
    total: order_by
  }

  # aggregate sum on columns
  type invoices_sum_fields {
    federal_tax_rate: numeric
    local_tax_rate: numeric
    state_tax_rate: numeric
    total: numeric
  }

  # order by sum() on columns of table "invoices"
  input invoices_sum_order_by {
    federal_tax_rate: order_by
    local_tax_rate: order_by
    state_tax_rate: order_by
    total: order_by
  }

  # update columns of table "invoices"
  enum invoices_update_column {
    # column name
    created_at

    # column name
    date

    # column name
    due_date

    # column name
    exported

    # column name
    exported_at

    # column name
    federal_tax_rate

    # column name
    id

    # column name
    invoice_number

    # column name
    is_credit_memo

    # column name
    jobid

    # column name
    local_tax_rate

    # column name
    state_tax_rate

    # column name
    total

    # column name
    updated_at

    # column name
    vendorid
  }

  # aggregate var_pop on columns
  type invoices_var_pop_fields {
    federal_tax_rate: Float
    local_tax_rate: Float
    state_tax_rate: Float
    total: Float
  }

  # order by var_pop() on columns of table "invoices"
  input invoices_var_pop_order_by {
    federal_tax_rate: order_by
    local_tax_rate: order_by
    state_tax_rate: order_by
    total: order_by
  }

  # aggregate var_samp on columns
  type invoices_var_samp_fields {
    federal_tax_rate: Float
    local_tax_rate: Float
    state_tax_rate: Float
    total: Float
  }

  # order by var_samp() on columns of table "invoices"
  input invoices_var_samp_order_by {
    federal_tax_rate: order_by
    local_tax_rate: order_by
    state_tax_rate: order_by
    total: order_by
  }

  # aggregate variance on columns
  type invoices_variance_fields {
    federal_tax_rate: Float
    local_tax_rate: Float
    state_tax_rate: Float
    total: Float
  }

  # order by variance() on columns of table "invoices"
  input invoices_variance_order_by {
    federal_tax_rate: order_by
    local_tax_rate: order_by
    state_tax_rate: order_by
    total: order_by
  }

  # columns and relationships of "job_conversations"
  type job_conversations {
    # An object relationship
    conversation: conversations!
    conversationid: uuid!

    # An object relationship
    job: jobs!
    jobid: uuid!
  }

  # aggregated selection of "job_conversations"
  type job_conversations_aggregate {
    aggregate: job_conversations_aggregate_fields
    nodes: [job_conversations!]!
  }

  # aggregate fields of "job_conversations"
  type job_conversations_aggregate_fields {
    count(columns: [job_conversations_select_column!], distinct: Boolean): Int
    max: job_conversations_max_fields
    min: job_conversations_min_fields
  }

  # order by aggregate values of table "job_conversations"
  input job_conversations_aggregate_order_by {
    count: order_by
    max: job_conversations_max_order_by
    min: job_conversations_min_order_by
  }

  # input type for inserting array relation for remote table "job_conversations"
  input job_conversations_arr_rel_insert_input {
    data: [job_conversations_insert_input!]!
    on_conflict: job_conversations_on_conflict
  }

  # Boolean expression to filter rows from the table "job_conversations". All fields are combined with a logical 'AND'.
  input job_conversations_bool_exp {
    _and: [job_conversations_bool_exp]
    _not: job_conversations_bool_exp
    _or: [job_conversations_bool_exp]
    conversation: conversations_bool_exp
    conversationid: uuid_comparison_exp
    job: jobs_bool_exp
    jobid: uuid_comparison_exp
  }

  # unique or primary key constraints on table "job_conversations"
  enum job_conversations_constraint {
    # unique or primary key constraint
    job_conversations_pkey
  }

  # input type for inserting data into table "job_conversations"
  input job_conversations_insert_input {
    conversation: conversations_obj_rel_insert_input
    conversationid: uuid
    job: jobs_obj_rel_insert_input
    jobid: uuid
  }

  # aggregate max on columns
  type job_conversations_max_fields {
    conversationid: uuid
    jobid: uuid
  }

  # order by max() on columns of table "job_conversations"
  input job_conversations_max_order_by {
    conversationid: order_by
    jobid: order_by
  }

  # aggregate min on columns
  type job_conversations_min_fields {
    conversationid: uuid
    jobid: uuid
  }

  # order by min() on columns of table "job_conversations"
  input job_conversations_min_order_by {
    conversationid: order_by
    jobid: order_by
  }

  # response of any mutation on the table "job_conversations"
  type job_conversations_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [job_conversations!]!
  }

  # input type for inserting object relation for remote table "job_conversations"
  input job_conversations_obj_rel_insert_input {
    data: job_conversations_insert_input!
    on_conflict: job_conversations_on_conflict
  }

  # on conflict condition type for table "job_conversations"
  input job_conversations_on_conflict {
    constraint: job_conversations_constraint!
    update_columns: [job_conversations_update_column!]!
    where: job_conversations_bool_exp
  }

  # ordering options when selecting data from "job_conversations"
  input job_conversations_order_by {
    conversation: conversations_order_by
    conversationid: order_by
    job: jobs_order_by
    jobid: order_by
  }

  # primary key columns input for table: "job_conversations"
  input job_conversations_pk_columns_input {
    conversationid: uuid!
    jobid: uuid!
  }

  # select columns of table "job_conversations"
  enum job_conversations_select_column {
    # column name
    conversationid

    # column name
    jobid
  }

  # input type for updating data in table "job_conversations"
  input job_conversations_set_input {
    conversationid: uuid
    jobid: uuid
  }

  # update columns of table "job_conversations"
  enum job_conversations_update_column {
    # column name
    conversationid

    # column name
    jobid
  }

  # columns and relationships of "joblines"
  type joblines {
    act_price: numeric

    # An array relationship
    allocations(
      # distinct select on columns
      distinct_on: [allocations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [allocations_order_by!]

      # filter the rows returned
      where: allocations_bool_exp
    ): [allocations!]!

    # An aggregated array relationship
    allocations_aggregate(
      # distinct select on columns
      distinct_on: [allocations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [allocations_order_by!]

      # filter the rows returned
      where: allocations_bool_exp
    ): allocations_aggregate!
    alt_co_id: String
    alt_overrd: Boolean
    alt_part_i: Boolean
    alt_partm: String
    alt_partno: String
    bett_amt: numeric
    bett_pctg: numeric
    bett_tax: Boolean
    bett_type: String
    cert_part: Boolean
    created_at: timestamptz!
    db_hrs: numeric
    db_price: numeric
    db_ref: String
    est_seq: Int
    glass_flag: Boolean
    id: uuid!

    # An object relationship
    job: jobs!
    jobid: uuid!
    lbr_amt: numeric
    lbr_hrs_j: Boolean
    lbr_inc: Boolean
    lbr_op: String
    lbr_op_j: Boolean
    lbr_tax: Boolean
    lbr_typ_j: Boolean
    line_desc: String
    line_ind: String
    line_no: Int
    line_ref: numeric
    location: String
    misc_amt: numeric
    misc_sublt: Boolean
    misc_tax: Boolean
    mod_lb_hrs: numeric
    mod_lbr_ty: String
    notes: String
    oem_partno: String
    op_code_desc: String
    paint_stg: Int
    paint_tone: Int
    part_qty: Int
    part_type: String

    # An array relationship
    parts_order_lines(
      # distinct select on columns
      distinct_on: [parts_order_lines_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [parts_order_lines_order_by!]

      # filter the rows returned
      where: parts_order_lines_bool_exp
    ): [parts_order_lines!]!

    # An aggregated array relationship
    parts_order_lines_aggregate(
      # distinct select on columns
      distinct_on: [parts_order_lines_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [parts_order_lines_order_by!]

      # filter the rows returned
      where: parts_order_lines_bool_exp
    ): parts_order_lines_aggregate!
    price_inc: Boolean
    price_j: Boolean
    prt_dsmk_m: numeric
    prt_dsmk_p: numeric
    removed: Boolean!
    status: String
    tax_part: Boolean!
    unq_seq: Int
    updated_at: timestamptz!
  }

  # aggregated selection of "joblines"
  type joblines_aggregate {
    aggregate: joblines_aggregate_fields
    nodes: [joblines!]!
  }

  # aggregate fields of "joblines"
  type joblines_aggregate_fields {
    avg: joblines_avg_fields
    count(columns: [joblines_select_column!], distinct: Boolean): Int
    max: joblines_max_fields
    min: joblines_min_fields
    stddev: joblines_stddev_fields
    stddev_pop: joblines_stddev_pop_fields
    stddev_samp: joblines_stddev_samp_fields
    sum: joblines_sum_fields
    var_pop: joblines_var_pop_fields
    var_samp: joblines_var_samp_fields
    variance: joblines_variance_fields
  }

  # order by aggregate values of table "joblines"
  input joblines_aggregate_order_by {
    avg: joblines_avg_order_by
    count: order_by
    max: joblines_max_order_by
    min: joblines_min_order_by
    stddev: joblines_stddev_order_by
    stddev_pop: joblines_stddev_pop_order_by
    stddev_samp: joblines_stddev_samp_order_by
    sum: joblines_sum_order_by
    var_pop: joblines_var_pop_order_by
    var_samp: joblines_var_samp_order_by
    variance: joblines_variance_order_by
  }

  # input type for inserting array relation for remote table "joblines"
  input joblines_arr_rel_insert_input {
    data: [joblines_insert_input!]!
    on_conflict: joblines_on_conflict
  }

  # aggregate avg on columns
  type joblines_avg_fields {
    act_price: Float
    bett_amt: Float
    bett_pctg: Float
    db_hrs: Float
    db_price: Float
    est_seq: Float
    lbr_amt: Float
    line_no: Float
    line_ref: Float
    misc_amt: Float
    mod_lb_hrs: Float
    paint_stg: Float
    paint_tone: Float
    part_qty: Float
    prt_dsmk_m: Float
    prt_dsmk_p: Float
    unq_seq: Float
  }

  # order by avg() on columns of table "joblines"
  input joblines_avg_order_by {
    act_price: order_by
    bett_amt: order_by
    bett_pctg: order_by
    db_hrs: order_by
    db_price: order_by
    est_seq: order_by
    lbr_amt: order_by
    line_no: order_by
    line_ref: order_by
    misc_amt: order_by
    mod_lb_hrs: order_by
    paint_stg: order_by
    paint_tone: order_by
    part_qty: order_by
    prt_dsmk_m: order_by
    prt_dsmk_p: order_by
    unq_seq: order_by
  }

  # Boolean expression to filter rows from the table "joblines". All fields are combined with a logical 'AND'.
  input joblines_bool_exp {
    _and: [joblines_bool_exp]
    _not: joblines_bool_exp
    _or: [joblines_bool_exp]
    act_price: numeric_comparison_exp
    allocations: allocations_bool_exp
    alt_co_id: String_comparison_exp
    alt_overrd: Boolean_comparison_exp
    alt_part_i: Boolean_comparison_exp
    alt_partm: String_comparison_exp
    alt_partno: String_comparison_exp
    bett_amt: numeric_comparison_exp
    bett_pctg: numeric_comparison_exp
    bett_tax: Boolean_comparison_exp
    bett_type: String_comparison_exp
    cert_part: Boolean_comparison_exp
    created_at: timestamptz_comparison_exp
    db_hrs: numeric_comparison_exp
    db_price: numeric_comparison_exp
    db_ref: String_comparison_exp
    est_seq: Int_comparison_exp
    glass_flag: Boolean_comparison_exp
    id: uuid_comparison_exp
    job: jobs_bool_exp
    jobid: uuid_comparison_exp
    lbr_amt: numeric_comparison_exp
    lbr_hrs_j: Boolean_comparison_exp
    lbr_inc: Boolean_comparison_exp
    lbr_op: String_comparison_exp
    lbr_op_j: Boolean_comparison_exp
    lbr_tax: Boolean_comparison_exp
    lbr_typ_j: Boolean_comparison_exp
    line_desc: String_comparison_exp
    line_ind: String_comparison_exp
    line_no: Int_comparison_exp
    line_ref: numeric_comparison_exp
    location: String_comparison_exp
    misc_amt: numeric_comparison_exp
    misc_sublt: Boolean_comparison_exp
    misc_tax: Boolean_comparison_exp
    mod_lb_hrs: numeric_comparison_exp
    mod_lbr_ty: String_comparison_exp
    notes: String_comparison_exp
    oem_partno: String_comparison_exp
    op_code_desc: String_comparison_exp
    paint_stg: Int_comparison_exp
    paint_tone: Int_comparison_exp
    part_qty: Int_comparison_exp
    part_type: String_comparison_exp
    parts_order_lines: parts_order_lines_bool_exp
    price_inc: Boolean_comparison_exp
    price_j: Boolean_comparison_exp
    prt_dsmk_m: numeric_comparison_exp
    prt_dsmk_p: numeric_comparison_exp
    removed: Boolean_comparison_exp
    status: String_comparison_exp
    tax_part: Boolean_comparison_exp
    unq_seq: Int_comparison_exp
    updated_at: timestamptz_comparison_exp
  }

  # unique or primary key constraints on table "joblines"
  enum joblines_constraint {
    # unique or primary key constraint
    joblines_pkey
  }

  # input type for incrementing integer column in table "joblines"
  input joblines_inc_input {
    act_price: numeric
    bett_amt: numeric
    bett_pctg: numeric
    db_hrs: numeric
    db_price: numeric
    est_seq: Int
    lbr_amt: numeric
    line_no: Int
    line_ref: numeric
    misc_amt: numeric
    mod_lb_hrs: numeric
    paint_stg: Int
    paint_tone: Int
    part_qty: Int
    prt_dsmk_m: numeric
    prt_dsmk_p: numeric
    unq_seq: Int
  }

  # input type for inserting data into table "joblines"
  input joblines_insert_input {
    act_price: numeric
    allocations: allocations_arr_rel_insert_input
    alt_co_id: String
    alt_overrd: Boolean
    alt_part_i: Boolean
    alt_partm: String
    alt_partno: String
    bett_amt: numeric
    bett_pctg: numeric
    bett_tax: Boolean
    bett_type: String
    cert_part: Boolean
    created_at: timestamptz
    db_hrs: numeric
    db_price: numeric
    db_ref: String
    est_seq: Int
    glass_flag: Boolean
    id: uuid
    job: jobs_obj_rel_insert_input
    jobid: uuid
    lbr_amt: numeric
    lbr_hrs_j: Boolean
    lbr_inc: Boolean
    lbr_op: String
    lbr_op_j: Boolean
    lbr_tax: Boolean
    lbr_typ_j: Boolean
    line_desc: String
    line_ind: String
    line_no: Int
    line_ref: numeric
    location: String
    misc_amt: numeric
    misc_sublt: Boolean
    misc_tax: Boolean
    mod_lb_hrs: numeric
    mod_lbr_ty: String
    notes: String
    oem_partno: String
    op_code_desc: String
    paint_stg: Int
    paint_tone: Int
    part_qty: Int
    part_type: String
    parts_order_lines: parts_order_lines_arr_rel_insert_input
    price_inc: Boolean
    price_j: Boolean
    prt_dsmk_m: numeric
    prt_dsmk_p: numeric
    removed: Boolean
    status: String
    tax_part: Boolean
    unq_seq: Int
    updated_at: timestamptz
  }

  # aggregate max on columns
  type joblines_max_fields {
    act_price: numeric
    alt_co_id: String
    alt_partm: String
    alt_partno: String
    bett_amt: numeric
    bett_pctg: numeric
    bett_type: String
    created_at: timestamptz
    db_hrs: numeric
    db_price: numeric
    db_ref: String
    est_seq: Int
    id: uuid
    jobid: uuid
    lbr_amt: numeric
    lbr_op: String
    line_desc: String
    line_ind: String
    line_no: Int
    line_ref: numeric
    location: String
    misc_amt: numeric
    mod_lb_hrs: numeric
    mod_lbr_ty: String
    notes: String
    oem_partno: String
    op_code_desc: String
    paint_stg: Int
    paint_tone: Int
    part_qty: Int
    part_type: String
    prt_dsmk_m: numeric
    prt_dsmk_p: numeric
    status: String
    unq_seq: Int
    updated_at: timestamptz
  }

  # order by max() on columns of table "joblines"
  input joblines_max_order_by {
    act_price: order_by
    alt_co_id: order_by
    alt_partm: order_by
    alt_partno: order_by
    bett_amt: order_by
    bett_pctg: order_by
    bett_type: order_by
    created_at: order_by
    db_hrs: order_by
    db_price: order_by
    db_ref: order_by
    est_seq: order_by
    id: order_by
    jobid: order_by
    lbr_amt: order_by
    lbr_op: order_by
    line_desc: order_by
    line_ind: order_by
    line_no: order_by
    line_ref: order_by
    location: order_by
    misc_amt: order_by
    mod_lb_hrs: order_by
    mod_lbr_ty: order_by
    notes: order_by
    oem_partno: order_by
    op_code_desc: order_by
    paint_stg: order_by
    paint_tone: order_by
    part_qty: order_by
    part_type: order_by
    prt_dsmk_m: order_by
    prt_dsmk_p: order_by
    status: order_by
    unq_seq: order_by
    updated_at: order_by
  }

  # aggregate min on columns
  type joblines_min_fields {
    act_price: numeric
    alt_co_id: String
    alt_partm: String
    alt_partno: String
    bett_amt: numeric
    bett_pctg: numeric
    bett_type: String
    created_at: timestamptz
    db_hrs: numeric
    db_price: numeric
    db_ref: String
    est_seq: Int
    id: uuid
    jobid: uuid
    lbr_amt: numeric
    lbr_op: String
    line_desc: String
    line_ind: String
    line_no: Int
    line_ref: numeric
    location: String
    misc_amt: numeric
    mod_lb_hrs: numeric
    mod_lbr_ty: String
    notes: String
    oem_partno: String
    op_code_desc: String
    paint_stg: Int
    paint_tone: Int
    part_qty: Int
    part_type: String
    prt_dsmk_m: numeric
    prt_dsmk_p: numeric
    status: String
    unq_seq: Int
    updated_at: timestamptz
  }

  # order by min() on columns of table "joblines"
  input joblines_min_order_by {
    act_price: order_by
    alt_co_id: order_by
    alt_partm: order_by
    alt_partno: order_by
    bett_amt: order_by
    bett_pctg: order_by
    bett_type: order_by
    created_at: order_by
    db_hrs: order_by
    db_price: order_by
    db_ref: order_by
    est_seq: order_by
    id: order_by
    jobid: order_by
    lbr_amt: order_by
    lbr_op: order_by
    line_desc: order_by
    line_ind: order_by
    line_no: order_by
    line_ref: order_by
    location: order_by
    misc_amt: order_by
    mod_lb_hrs: order_by
    mod_lbr_ty: order_by
    notes: order_by
    oem_partno: order_by
    op_code_desc: order_by
    paint_stg: order_by
    paint_tone: order_by
    part_qty: order_by
    part_type: order_by
    prt_dsmk_m: order_by
    prt_dsmk_p: order_by
    status: order_by
    unq_seq: order_by
    updated_at: order_by
  }

  # response of any mutation on the table "joblines"
  type joblines_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [joblines!]!
  }

  # input type for inserting object relation for remote table "joblines"
  input joblines_obj_rel_insert_input {
    data: joblines_insert_input!
    on_conflict: joblines_on_conflict
  }

  # on conflict condition type for table "joblines"
  input joblines_on_conflict {
    constraint: joblines_constraint!
    update_columns: [joblines_update_column!]!
    where: joblines_bool_exp
  }

  # ordering options when selecting data from "joblines"
  input joblines_order_by {
    act_price: order_by
    allocations_aggregate: allocations_aggregate_order_by
    alt_co_id: order_by
    alt_overrd: order_by
    alt_part_i: order_by
    alt_partm: order_by
    alt_partno: order_by
    bett_amt: order_by
    bett_pctg: order_by
    bett_tax: order_by
    bett_type: order_by
    cert_part: order_by
    created_at: order_by
    db_hrs: order_by
    db_price: order_by
    db_ref: order_by
    est_seq: order_by
    glass_flag: order_by
    id: order_by
    job: jobs_order_by
    jobid: order_by
    lbr_amt: order_by
    lbr_hrs_j: order_by
    lbr_inc: order_by
    lbr_op: order_by
    lbr_op_j: order_by
    lbr_tax: order_by
    lbr_typ_j: order_by
    line_desc: order_by
    line_ind: order_by
    line_no: order_by
    line_ref: order_by
    location: order_by
    misc_amt: order_by
    misc_sublt: order_by
    misc_tax: order_by
    mod_lb_hrs: order_by
    mod_lbr_ty: order_by
    notes: order_by
    oem_partno: order_by
    op_code_desc: order_by
    paint_stg: order_by
    paint_tone: order_by
    part_qty: order_by
    part_type: order_by
    parts_order_lines_aggregate: parts_order_lines_aggregate_order_by
    price_inc: order_by
    price_j: order_by
    prt_dsmk_m: order_by
    prt_dsmk_p: order_by
    removed: order_by
    status: order_by
    tax_part: order_by
    unq_seq: order_by
    updated_at: order_by
  }

  # primary key columns input for table: "joblines"
  input joblines_pk_columns_input {
    id: uuid!
  }

  # select columns of table "joblines"
  enum joblines_select_column {
    # column name
    act_price

    # column name
    alt_co_id

    # column name
    alt_overrd

    # column name
    alt_part_i

    # column name
    alt_partm

    # column name
    alt_partno

    # column name
    bett_amt

    # column name
    bett_pctg

    # column name
    bett_tax

    # column name
    bett_type

    # column name
    cert_part

    # column name
    created_at

    # column name
    db_hrs

    # column name
    db_price

    # column name
    db_ref

    # column name
    est_seq

    # column name
    glass_flag

    # column name
    id

    # column name
    jobid

    # column name
    lbr_amt

    # column name
    lbr_hrs_j

    # column name
    lbr_inc

    # column name
    lbr_op

    # column name
    lbr_op_j

    # column name
    lbr_tax

    # column name
    lbr_typ_j

    # column name
    line_desc

    # column name
    line_ind

    # column name
    line_no

    # column name
    line_ref

    # column name
    location

    # column name
    misc_amt

    # column name
    misc_sublt

    # column name
    misc_tax

    # column name
    mod_lb_hrs

    # column name
    mod_lbr_ty

    # column name
    notes

    # column name
    oem_partno

    # column name
    op_code_desc

    # column name
    paint_stg

    # column name
    paint_tone

    # column name
    part_qty

    # column name
    part_type

    # column name
    price_inc

    # column name
    price_j

    # column name
    prt_dsmk_m

    # column name
    prt_dsmk_p

    # column name
    removed

    # column name
    status

    # column name
    tax_part

    # column name
    unq_seq

    # column name
    updated_at
  }

  # input type for updating data in table "joblines"
  input joblines_set_input {
    act_price: numeric
    alt_co_id: String
    alt_overrd: Boolean
    alt_part_i: Boolean
    alt_partm: String
    alt_partno: String
    bett_amt: numeric
    bett_pctg: numeric
    bett_tax: Boolean
    bett_type: String
    cert_part: Boolean
    created_at: timestamptz
    db_hrs: numeric
    db_price: numeric
    db_ref: String
    est_seq: Int
    glass_flag: Boolean
    id: uuid
    jobid: uuid
    lbr_amt: numeric
    lbr_hrs_j: Boolean
    lbr_inc: Boolean
    lbr_op: String
    lbr_op_j: Boolean
    lbr_tax: Boolean
    lbr_typ_j: Boolean
    line_desc: String
    line_ind: String
    line_no: Int
    line_ref: numeric
    location: String
    misc_amt: numeric
    misc_sublt: Boolean
    misc_tax: Boolean
    mod_lb_hrs: numeric
    mod_lbr_ty: String
    notes: String
    oem_partno: String
    op_code_desc: String
    paint_stg: Int
    paint_tone: Int
    part_qty: Int
    part_type: String
    price_inc: Boolean
    price_j: Boolean
    prt_dsmk_m: numeric
    prt_dsmk_p: numeric
    removed: Boolean
    status: String
    tax_part: Boolean
    unq_seq: Int
    updated_at: timestamptz
  }

  # columns and relationships of "joblines_status"
  type joblines_status {
    count: bigint

    # An object relationship
    job: jobs
    jobid: uuid
    part_type: String
    status: String
  }

  # aggregated selection of "joblines_status"
  type joblines_status_aggregate {
    aggregate: joblines_status_aggregate_fields
    nodes: [joblines_status!]!
  }

  # aggregate fields of "joblines_status"
  type joblines_status_aggregate_fields {
    avg: joblines_status_avg_fields
    count(columns: [joblines_status_select_column!], distinct: Boolean): Int
    max: joblines_status_max_fields
    min: joblines_status_min_fields
    stddev: joblines_status_stddev_fields
    stddev_pop: joblines_status_stddev_pop_fields
    stddev_samp: joblines_status_stddev_samp_fields
    sum: joblines_status_sum_fields
    var_pop: joblines_status_var_pop_fields
    var_samp: joblines_status_var_samp_fields
    variance: joblines_status_variance_fields
  }

  # order by aggregate values of table "joblines_status"
  input joblines_status_aggregate_order_by {
    avg: joblines_status_avg_order_by
    count: order_by
    max: joblines_status_max_order_by
    min: joblines_status_min_order_by
    stddev: joblines_status_stddev_order_by
    stddev_pop: joblines_status_stddev_pop_order_by
    stddev_samp: joblines_status_stddev_samp_order_by
    sum: joblines_status_sum_order_by
    var_pop: joblines_status_var_pop_order_by
    var_samp: joblines_status_var_samp_order_by
    variance: joblines_status_variance_order_by
  }

  # aggregate avg on columns
  type joblines_status_avg_fields {
    count: Float
  }

  # order by avg() on columns of table "joblines_status"
  input joblines_status_avg_order_by {
    count: order_by
  }

  # Boolean expression to filter rows from the table "joblines_status". All fields are combined with a logical 'AND'.
  input joblines_status_bool_exp {
    _and: [joblines_status_bool_exp]
    _not: joblines_status_bool_exp
    _or: [joblines_status_bool_exp]
    count: bigint_comparison_exp
    job: jobs_bool_exp
    jobid: uuid_comparison_exp
    part_type: String_comparison_exp
    status: String_comparison_exp
  }

  # aggregate max on columns
  type joblines_status_max_fields {
    count: bigint
    jobid: uuid
    part_type: String
    status: String
  }

  # order by max() on columns of table "joblines_status"
  input joblines_status_max_order_by {
    count: order_by
    jobid: order_by
    part_type: order_by
    status: order_by
  }

  # aggregate min on columns
  type joblines_status_min_fields {
    count: bigint
    jobid: uuid
    part_type: String
    status: String
  }

  # order by min() on columns of table "joblines_status"
  input joblines_status_min_order_by {
    count: order_by
    jobid: order_by
    part_type: order_by
    status: order_by
  }

  # ordering options when selecting data from "joblines_status"
  input joblines_status_order_by {
    count: order_by
    job: jobs_order_by
    jobid: order_by
    part_type: order_by
    status: order_by
  }

  # select columns of table "joblines_status"
  enum joblines_status_select_column {
    # column name
    count

    # column name
    jobid

    # column name
    part_type

    # column name
    status
  }

  # aggregate stddev on columns
  type joblines_status_stddev_fields {
    count: Float
  }

  # order by stddev() on columns of table "joblines_status"
  input joblines_status_stddev_order_by {
    count: order_by
  }

  # aggregate stddev_pop on columns
  type joblines_status_stddev_pop_fields {
    count: Float
  }

  # order by stddev_pop() on columns of table "joblines_status"
  input joblines_status_stddev_pop_order_by {
    count: order_by
  }

  # aggregate stddev_samp on columns
  type joblines_status_stddev_samp_fields {
    count: Float
  }

  # order by stddev_samp() on columns of table "joblines_status"
  input joblines_status_stddev_samp_order_by {
    count: order_by
  }

  # aggregate sum on columns
  type joblines_status_sum_fields {
    count: bigint
  }

  # order by sum() on columns of table "joblines_status"
  input joblines_status_sum_order_by {
    count: order_by
  }

  # aggregate var_pop on columns
  type joblines_status_var_pop_fields {
    count: Float
  }

  # order by var_pop() on columns of table "joblines_status"
  input joblines_status_var_pop_order_by {
    count: order_by
  }

  # aggregate var_samp on columns
  type joblines_status_var_samp_fields {
    count: Float
  }

  # order by var_samp() on columns of table "joblines_status"
  input joblines_status_var_samp_order_by {
    count: order_by
  }

  # aggregate variance on columns
  type joblines_status_variance_fields {
    count: Float
  }

  # order by variance() on columns of table "joblines_status"
  input joblines_status_variance_order_by {
    count: order_by
  }

  # aggregate stddev on columns
  type joblines_stddev_fields {
    act_price: Float
    bett_amt: Float
    bett_pctg: Float
    db_hrs: Float
    db_price: Float
    est_seq: Float
    lbr_amt: Float
    line_no: Float
    line_ref: Float
    misc_amt: Float
    mod_lb_hrs: Float
    paint_stg: Float
    paint_tone: Float
    part_qty: Float
    prt_dsmk_m: Float
    prt_dsmk_p: Float
    unq_seq: Float
  }

  # order by stddev() on columns of table "joblines"
  input joblines_stddev_order_by {
    act_price: order_by
    bett_amt: order_by
    bett_pctg: order_by
    db_hrs: order_by
    db_price: order_by
    est_seq: order_by
    lbr_amt: order_by
    line_no: order_by
    line_ref: order_by
    misc_amt: order_by
    mod_lb_hrs: order_by
    paint_stg: order_by
    paint_tone: order_by
    part_qty: order_by
    prt_dsmk_m: order_by
    prt_dsmk_p: order_by
    unq_seq: order_by
  }

  # aggregate stddev_pop on columns
  type joblines_stddev_pop_fields {
    act_price: Float
    bett_amt: Float
    bett_pctg: Float
    db_hrs: Float
    db_price: Float
    est_seq: Float
    lbr_amt: Float
    line_no: Float
    line_ref: Float
    misc_amt: Float
    mod_lb_hrs: Float
    paint_stg: Float
    paint_tone: Float
    part_qty: Float
    prt_dsmk_m: Float
    prt_dsmk_p: Float
    unq_seq: Float
  }

  # order by stddev_pop() on columns of table "joblines"
  input joblines_stddev_pop_order_by {
    act_price: order_by
    bett_amt: order_by
    bett_pctg: order_by
    db_hrs: order_by
    db_price: order_by
    est_seq: order_by
    lbr_amt: order_by
    line_no: order_by
    line_ref: order_by
    misc_amt: order_by
    mod_lb_hrs: order_by
    paint_stg: order_by
    paint_tone: order_by
    part_qty: order_by
    prt_dsmk_m: order_by
    prt_dsmk_p: order_by
    unq_seq: order_by
  }

  # aggregate stddev_samp on columns
  type joblines_stddev_samp_fields {
    act_price: Float
    bett_amt: Float
    bett_pctg: Float
    db_hrs: Float
    db_price: Float
    est_seq: Float
    lbr_amt: Float
    line_no: Float
    line_ref: Float
    misc_amt: Float
    mod_lb_hrs: Float
    paint_stg: Float
    paint_tone: Float
    part_qty: Float
    prt_dsmk_m: Float
    prt_dsmk_p: Float
    unq_seq: Float
  }

  # order by stddev_samp() on columns of table "joblines"
  input joblines_stddev_samp_order_by {
    act_price: order_by
    bett_amt: order_by
    bett_pctg: order_by
    db_hrs: order_by
    db_price: order_by
    est_seq: order_by
    lbr_amt: order_by
    line_no: order_by
    line_ref: order_by
    misc_amt: order_by
    mod_lb_hrs: order_by
    paint_stg: order_by
    paint_tone: order_by
    part_qty: order_by
    prt_dsmk_m: order_by
    prt_dsmk_p: order_by
    unq_seq: order_by
  }

  # aggregate sum on columns
  type joblines_sum_fields {
    act_price: numeric
    bett_amt: numeric
    bett_pctg: numeric
    db_hrs: numeric
    db_price: numeric
    est_seq: Int
    lbr_amt: numeric
    line_no: Int
    line_ref: numeric
    misc_amt: numeric
    mod_lb_hrs: numeric
    paint_stg: Int
    paint_tone: Int
    part_qty: Int
    prt_dsmk_m: numeric
    prt_dsmk_p: numeric
    unq_seq: Int
  }

  # order by sum() on columns of table "joblines"
  input joblines_sum_order_by {
    act_price: order_by
    bett_amt: order_by
    bett_pctg: order_by
    db_hrs: order_by
    db_price: order_by
    est_seq: order_by
    lbr_amt: order_by
    line_no: order_by
    line_ref: order_by
    misc_amt: order_by
    mod_lb_hrs: order_by
    paint_stg: order_by
    paint_tone: order_by
    part_qty: order_by
    prt_dsmk_m: order_by
    prt_dsmk_p: order_by
    unq_seq: order_by
  }

  # update columns of table "joblines"
  enum joblines_update_column {
    # column name
    act_price

    # column name
    alt_co_id

    # column name
    alt_overrd

    # column name
    alt_part_i

    # column name
    alt_partm

    # column name
    alt_partno

    # column name
    bett_amt

    # column name
    bett_pctg

    # column name
    bett_tax

    # column name
    bett_type

    # column name
    cert_part

    # column name
    created_at

    # column name
    db_hrs

    # column name
    db_price

    # column name
    db_ref

    # column name
    est_seq

    # column name
    glass_flag

    # column name
    id

    # column name
    jobid

    # column name
    lbr_amt

    # column name
    lbr_hrs_j

    # column name
    lbr_inc

    # column name
    lbr_op

    # column name
    lbr_op_j

    # column name
    lbr_tax

    # column name
    lbr_typ_j

    # column name
    line_desc

    # column name
    line_ind

    # column name
    line_no

    # column name
    line_ref

    # column name
    location

    # column name
    misc_amt

    # column name
    misc_sublt

    # column name
    misc_tax

    # column name
    mod_lb_hrs

    # column name
    mod_lbr_ty

    # column name
    notes

    # column name
    oem_partno

    # column name
    op_code_desc

    # column name
    paint_stg

    # column name
    paint_tone

    # column name
    part_qty

    # column name
    part_type

    # column name
    price_inc

    # column name
    price_j

    # column name
    prt_dsmk_m

    # column name
    prt_dsmk_p

    # column name
    removed

    # column name
    status

    # column name
    tax_part

    # column name
    unq_seq

    # column name
    updated_at
  }

  # aggregate var_pop on columns
  type joblines_var_pop_fields {
    act_price: Float
    bett_amt: Float
    bett_pctg: Float
    db_hrs: Float
    db_price: Float
    est_seq: Float
    lbr_amt: Float
    line_no: Float
    line_ref: Float
    misc_amt: Float
    mod_lb_hrs: Float
    paint_stg: Float
    paint_tone: Float
    part_qty: Float
    prt_dsmk_m: Float
    prt_dsmk_p: Float
    unq_seq: Float
  }

  # order by var_pop() on columns of table "joblines"
  input joblines_var_pop_order_by {
    act_price: order_by
    bett_amt: order_by
    bett_pctg: order_by
    db_hrs: order_by
    db_price: order_by
    est_seq: order_by
    lbr_amt: order_by
    line_no: order_by
    line_ref: order_by
    misc_amt: order_by
    mod_lb_hrs: order_by
    paint_stg: order_by
    paint_tone: order_by
    part_qty: order_by
    prt_dsmk_m: order_by
    prt_dsmk_p: order_by
    unq_seq: order_by
  }

  # aggregate var_samp on columns
  type joblines_var_samp_fields {
    act_price: Float
    bett_amt: Float
    bett_pctg: Float
    db_hrs: Float
    db_price: Float
    est_seq: Float
    lbr_amt: Float
    line_no: Float
    line_ref: Float
    misc_amt: Float
    mod_lb_hrs: Float
    paint_stg: Float
    paint_tone: Float
    part_qty: Float
    prt_dsmk_m: Float
    prt_dsmk_p: Float
    unq_seq: Float
  }

  # order by var_samp() on columns of table "joblines"
  input joblines_var_samp_order_by {
    act_price: order_by
    bett_amt: order_by
    bett_pctg: order_by
    db_hrs: order_by
    db_price: order_by
    est_seq: order_by
    lbr_amt: order_by
    line_no: order_by
    line_ref: order_by
    misc_amt: order_by
    mod_lb_hrs: order_by
    paint_stg: order_by
    paint_tone: order_by
    part_qty: order_by
    prt_dsmk_m: order_by
    prt_dsmk_p: order_by
    unq_seq: order_by
  }

  # aggregate variance on columns
  type joblines_variance_fields {
    act_price: Float
    bett_amt: Float
    bett_pctg: Float
    db_hrs: Float
    db_price: Float
    est_seq: Float
    lbr_amt: Float
    line_no: Float
    line_ref: Float
    misc_amt: Float
    mod_lb_hrs: Float
    paint_stg: Float
    paint_tone: Float
    part_qty: Float
    prt_dsmk_m: Float
    prt_dsmk_p: Float
    unq_seq: Float
  }

  # order by variance() on columns of table "joblines"
  input joblines_variance_order_by {
    act_price: order_by
    bett_amt: order_by
    bett_pctg: order_by
    db_hrs: order_by
    db_price: order_by
    est_seq: order_by
    lbr_amt: order_by
    line_no: order_by
    line_ref: order_by
    misc_amt: order_by
    mod_lb_hrs: order_by
    paint_stg: order_by
    paint_tone: order_by
    part_qty: order_by
    prt_dsmk_m: order_by
    prt_dsmk_p: order_by
    unq_seq: order_by
  }

  # columns and relationships of "jobs"
  type jobs {
    actual_completion: timestamptz
    actual_delivery: timestamptz
    actual_in: timestamptz
    adj_g_disc: numeric
    adj_strdis: numeric
    adj_towdis: numeric
    adjustment_bottom_line: numeric
    agt_addr1: String
    agt_addr2: String
    agt_city: String
    agt_co_id: String
    agt_co_nm: String
    agt_ct_fn: String
    agt_ct_ln: String
    agt_ct_ph: String
    agt_ct_phx: String
    agt_ctry: String
    agt_ea: String
    agt_fax: String
    agt_faxx: String
    agt_lic_no: String
    agt_ph1: String
    agt_ph1x: String
    agt_ph2: String
    agt_ph2x: String
    agt_st: String
    agt_zip: String

    # An array relationship
    appointments(
      # distinct select on columns
      distinct_on: [appointments_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [appointments_order_by!]

      # filter the rows returned
      where: appointments_bool_exp
    ): [appointments!]!

    # An aggregated array relationship
    appointments_aggregate(
      # distinct select on columns
      distinct_on: [appointments_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [appointments_order_by!]

      # filter the rows returned
      where: appointments_bool_exp
    ): appointments_aggregate!
    area_of_damage(
      # JSON select path
      path: String
    ): jsonb
    asgn_date: date
    asgn_no: String
    asgn_type: String

    # An array relationship
    available_jobs(
      # distinct select on columns
      distinct_on: [available_jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [available_jobs_order_by!]

      # filter the rows returned
      where: available_jobs_bool_exp
    ): [available_jobs!]!

    # An aggregated array relationship
    available_jobs_aggregate(
      # distinct select on columns
      distinct_on: [available_jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [available_jobs_order_by!]

      # filter the rows returned
      where: available_jobs_bool_exp
    ): available_jobs_aggregate!

    # An object relationship
    bodyshop: bodyshops!
    cat_no: String
    category: String

    # An array relationship
    cccontracts(
      # distinct select on columns
      distinct_on: [cccontracts_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [cccontracts_order_by!]

      # filter the rows returned
      where: cccontracts_bool_exp
    ): [cccontracts!]!

    # An aggregated array relationship
    cccontracts_aggregate(
      # distinct select on columns
      distinct_on: [cccontracts_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [cccontracts_order_by!]

      # filter the rows returned
      where: cccontracts_bool_exp
    ): cccontracts_aggregate!
    cieca_stl(
      # JSON select path
      path: String
    ): jsonb
    cieca_ttl(
      # JSON select path
      path: String
    ): jsonb
    ciecaid: String
    class: String
    clm_addr1: String
    clm_addr2: String
    clm_city: String
    clm_ct_fn: String
    clm_ct_ln: String
    clm_ct_ph: String
    clm_ct_phx: String
    clm_ctry: String
    clm_ea: String
    clm_fax: String
    clm_faxx: String
    clm_no: String
    clm_ofc_id: String
    clm_ofc_nm: String
    clm_ph1: String
    clm_ph1x: String
    clm_ph2: String
    clm_ph2x: String
    clm_st: String
    clm_title: String
    clm_total: numeric
    clm_zip: String
    converted: Boolean!
    created_at: timestamptz!

    # An array relationship
    csiinvites(
      # distinct select on columns
      distinct_on: [csi_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [csi_order_by!]

      # filter the rows returned
      where: csi_bool_exp
    ): [csi!]!

    # An aggregated array relationship
    csiinvites_aggregate(
      # distinct select on columns
      distinct_on: [csi_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [csi_order_by!]

      # filter the rows returned
      where: csi_bool_exp
    ): csi_aggregate!
    csr: String
    cust_pr: String
    date_closed: timestamptz
    date_estimated: timestamptz
    date_exported: timestamptz
    date_invoiced: timestamptz
    date_open: timestamptz
    date_scheduled: timestamptz
    ded_amt: numeric
    ded_status: String
    deliverchecklist(
      # JSON select path
      path: String
    ): jsonb
    depreciation_taxes: numeric

    # An array relationship
    documents(
      # distinct select on columns
      distinct_on: [documents_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [documents_order_by!]

      # filter the rows returned
      where: documents_bool_exp
    ): [documents!]!

    # An aggregated array relationship
    documents_aggregate(
      # distinct select on columns
      distinct_on: [documents_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [documents_order_by!]

      # filter the rows returned
      where: documents_bool_exp
    ): documents_aggregate!
    employee_body: uuid

    # An object relationship
    employee_body_rel: employees
    employee_prep: uuid

    # An object relationship
    employee_prep_rel: employees
    employee_refinish: uuid

    # An object relationship
    employee_refinish_rel: employees
    est_addr1: String
    est_addr2: String
    est_city: String
    est_co_nm: String
    est_ct_fn: String
    est_ct_ln: String
    est_ctry: String
    est_ea: String
    est_number: bigint!
    est_ph1: String
    est_st: String
    est_zip: String
    federal_tax_payable: numeric
    federal_tax_rate: numeric
    g_bett_amt: numeric
    id: uuid!
    inproduction: Boolean!
    ins_addr1: String
    ins_addr2: String
    ins_city: String
    ins_co_id: String
    ins_co_nm: String
    ins_ct_fn: String
    ins_ct_ln: String
    ins_ct_ph: String
    ins_ct_phx: String
    ins_ctry: String
    ins_ea: String
    ins_fax: String
    ins_faxx: String
    ins_memo: String
    ins_ph1: String
    ins_ph1x: String
    ins_ph2: String
    ins_ph2x: String
    ins_st: String
    ins_title: String
    ins_zip: String
    insd_addr1: String
    insd_addr2: String
    insd_city: String
    insd_co_nm: String
    insd_ctry: String
    insd_ea: String
    insd_fax: String
    insd_faxx: String
    insd_fn: String
    insd_ln: String
    insd_ph1: String
    insd_ph1x: String
    insd_ph2: String
    insd_ph2x: String
    insd_st: String
    insd_title: String
    insd_zip: String
    intakechecklist(
      # JSON select path
      path: String
    ): jsonb

    # An object relationship
    invoice: invoices
    invoice_allocation(
      # JSON select path
      path: String
    ): jsonb
    invoice_date: date

    # An array relationship
    invoices(
      # distinct select on columns
      distinct_on: [invoices_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [invoices_order_by!]

      # filter the rows returned
      where: invoices_bool_exp
    ): [invoices!]!

    # An aggregated array relationship
    invoices_aggregate(
      # distinct select on columns
      distinct_on: [invoices_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [invoices_order_by!]

      # filter the rows returned
      where: invoices_bool_exp
    ): invoices_aggregate!

    # An array relationship
    job_conversations(
      # distinct select on columns
      distinct_on: [job_conversations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [job_conversations_order_by!]

      # filter the rows returned
      where: job_conversations_bool_exp
    ): [job_conversations!]!

    # An aggregated array relationship
    job_conversations_aggregate(
      # distinct select on columns
      distinct_on: [job_conversations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [job_conversations_order_by!]

      # filter the rows returned
      where: job_conversations_bool_exp
    ): job_conversations_aggregate!
    job_totals(
      # JSON select path
      path: String
    ): jsonb

    # An array relationship
    joblines(
      # distinct select on columns
      distinct_on: [joblines_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [joblines_order_by!]

      # filter the rows returned
      where: joblines_bool_exp
    ): [joblines!]!

    # An aggregated array relationship
    joblines_aggregate(
      # distinct select on columns
      distinct_on: [joblines_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [joblines_order_by!]

      # filter the rows returned
      where: joblines_bool_exp
    ): joblines_aggregate!

    # An array relationship
    joblines_status(
      # distinct select on columns
      distinct_on: [joblines_status_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [joblines_status_order_by!]

      # filter the rows returned
      where: joblines_status_bool_exp
    ): [joblines_status!]!

    # An aggregated array relationship
    joblines_status_aggregate(
      # distinct select on columns
      distinct_on: [joblines_status_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [joblines_status_order_by!]

      # filter the rows returned
      where: joblines_status_bool_exp
    ): joblines_status_aggregate!
    kanbanparent: String
    kmin: Int
    kmout: Int
    labor_rate_desc: String
    labor_rate_id: String
    local_tax_rate: numeric
    loss_cat: String
    loss_date: date
    loss_desc: String
    loss_type: String

    # An array relationship
    notes(
      # distinct select on columns
      distinct_on: [notes_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [notes_order_by!]

      # filter the rows returned
      where: notes_bool_exp
    ): [notes!]!

    # An aggregated array relationship
    notes_aggregate(
      # distinct select on columns
      distinct_on: [notes_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [notes_order_by!]

      # filter the rows returned
      where: notes_bool_exp
    ): notes_aggregate!
    other_amount_payable: numeric

    # An object relationship
    owner: owners
    owner_owing: numeric
    ownerid: uuid
    ownr_addr1: String
    ownr_addr2: String
    ownr_city: String
    ownr_co_nm: String
    ownr_ctry: String
    ownr_ea: String
    ownr_fax: String
    ownr_faxx: String
    ownr_fn: String
    ownr_ln: String
    ownr_ph1: String
    ownr_ph1x: String
    ownr_ph2: String
    ownr_ph2x: String
    ownr_st: String
    ownr_title: String
    ownr_zip: String

    # An array relationship
    parts_orders(
      # distinct select on columns
      distinct_on: [parts_orders_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [parts_orders_order_by!]

      # filter the rows returned
      where: parts_orders_bool_exp
    ): [parts_orders!]!

    # An aggregated array relationship
    parts_orders_aggregate(
      # distinct select on columns
      distinct_on: [parts_orders_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [parts_orders_order_by!]

      # filter the rows returned
      where: parts_orders_bool_exp
    ): parts_orders_aggregate!
    parts_tax_rates(
      # JSON select path
      path: String
    ): jsonb
    pay_amt: numeric
    pay_chknm: String
    pay_date: date
    pay_type: String
    payee_nms: String

    # An array relationship
    payments(
      # distinct select on columns
      distinct_on: [payments_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [payments_order_by!]

      # filter the rows returned
      where: payments_bool_exp
    ): [payments!]!

    # An aggregated array relationship
    payments_aggregate(
      # distinct select on columns
      distinct_on: [payments_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [payments_order_by!]

      # filter the rows returned
      where: payments_bool_exp
    ): payments_aggregate!
    plate_no: String
    plate_st: String
    po_number: String
    policy_no: String
    production_vars(
      # JSON select path
      path: String
    ): jsonb
    rate_atp: numeric
    rate_la1: numeric
    rate_la2: numeric
    rate_la3: numeric
    rate_la4: numeric
    rate_laa: numeric
    rate_lab: numeric
    rate_lad: numeric
    rate_lae: numeric
    rate_laf: numeric
    rate_lag: numeric
    rate_lam: numeric
    rate_lar: numeric
    rate_las: numeric
    rate_lau: numeric
    rate_ma2s: numeric
    rate_ma2t: numeric
    rate_ma3s: numeric
    rate_mabl: numeric
    rate_macs: numeric
    rate_mahw: numeric
    rate_mapa: numeric
    rate_mash: numeric
    rate_matd: numeric
    referral_source: String
    regie_number: String
    ro_number: String
    scheduled_completion: timestamptz
    scheduled_delivery: timestamptz
    scheduled_in: timestamptz

    # An array relationship
    scoreboards(
      # distinct select on columns
      distinct_on: [scoreboard_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [scoreboard_order_by!]

      # filter the rows returned
      where: scoreboard_bool_exp
    ): [scoreboard!]!

    # An aggregated array relationship
    scoreboards_aggregate(
      # distinct select on columns
      distinct_on: [scoreboard_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [scoreboard_order_by!]

      # filter the rows returned
      where: scoreboard_bool_exp
    ): scoreboard_aggregate!
    selling_dealer: String
    selling_dealer_contact: String
    servicing_dealer: String
    servicing_dealer_contact: String
    shopid: uuid!
    special_coverage_policy: Boolean!
    state_tax_rate: numeric
    status: String!
    storage_payable: numeric
    tax_lbr_rt: numeric
    tax_levies_rt: numeric
    tax_paint_mat_rt: numeric
    tax_predis: numeric
    tax_prethr: numeric

    # Parts Tax Rate
    tax_pstthr: numeric
    tax_registration_number: String
    tax_str_rt: numeric

    # Sublet Tax Rate
    tax_sub_rt: numeric
    tax_thramt: numeric

    # Towing Tax Rate
    tax_tow_rt: numeric
    theft_ind: Boolean

    # An array relationship
    timetickets(
      # distinct select on columns
      distinct_on: [timetickets_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [timetickets_order_by!]

      # filter the rows returned
      where: timetickets_bool_exp
    ): [timetickets!]!

    # An aggregated array relationship
    timetickets_aggregate(
      # distinct select on columns
      distinct_on: [timetickets_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [timetickets_order_by!]

      # filter the rows returned
      where: timetickets_bool_exp
    ): timetickets_aggregate!
    tlos_ind: Boolean
    towing_payable: numeric
    unit_number: String
    updated_at: timestamptz!
    v_color: String
    v_make_desc: String
    v_model_desc: String
    v_model_yr: String
    v_vin: String

    # An object relationship
    vehicle: vehicles
    vehicleid: uuid
  }

  # aggregated selection of "jobs"
  type jobs_aggregate {
    aggregate: jobs_aggregate_fields
    nodes: [jobs!]!
  }

  # aggregate fields of "jobs"
  type jobs_aggregate_fields {
    avg: jobs_avg_fields
    count(columns: [jobs_select_column!], distinct: Boolean): Int
    max: jobs_max_fields
    min: jobs_min_fields
    stddev: jobs_stddev_fields
    stddev_pop: jobs_stddev_pop_fields
    stddev_samp: jobs_stddev_samp_fields
    sum: jobs_sum_fields
    var_pop: jobs_var_pop_fields
    var_samp: jobs_var_samp_fields
    variance: jobs_variance_fields
  }

  # order by aggregate values of table "jobs"
  input jobs_aggregate_order_by {
    avg: jobs_avg_order_by
    count: order_by
    max: jobs_max_order_by
    min: jobs_min_order_by
    stddev: jobs_stddev_order_by
    stddev_pop: jobs_stddev_pop_order_by
    stddev_samp: jobs_stddev_samp_order_by
    sum: jobs_sum_order_by
    var_pop: jobs_var_pop_order_by
    var_samp: jobs_var_samp_order_by
    variance: jobs_variance_order_by
  }

  # append existing jsonb value of filtered columns with new jsonb value
  input jobs_append_input {
    area_of_damage: jsonb
    cieca_stl: jsonb
    cieca_ttl: jsonb
    deliverchecklist: jsonb
    intakechecklist: jsonb
    invoice_allocation: jsonb
    job_totals: jsonb
    parts_tax_rates: jsonb
    production_vars: jsonb
  }

  # input type for inserting array relation for remote table "jobs"
  input jobs_arr_rel_insert_input {
    data: [jobs_insert_input!]!
    on_conflict: jobs_on_conflict
  }

  # aggregate avg on columns
  type jobs_avg_fields {
    adj_g_disc: Float
    adj_strdis: Float
    adj_towdis: Float
    adjustment_bottom_line: Float
    clm_total: Float
    ded_amt: Float
    depreciation_taxes: Float
    est_number: Float
    federal_tax_payable: Float
    federal_tax_rate: Float
    g_bett_amt: Float
    kmin: Float
    kmout: Float
    local_tax_rate: Float
    other_amount_payable: Float
    owner_owing: Float
    pay_amt: Float
    rate_atp: Float
    rate_la1: Float
    rate_la2: Float
    rate_la3: Float
    rate_la4: Float
    rate_laa: Float
    rate_lab: Float
    rate_lad: Float
    rate_lae: Float
    rate_laf: Float
    rate_lag: Float
    rate_lam: Float
    rate_lar: Float
    rate_las: Float
    rate_lau: Float
    rate_ma2s: Float
    rate_ma2t: Float
    rate_ma3s: Float
    rate_mabl: Float
    rate_macs: Float
    rate_mahw: Float
    rate_mapa: Float
    rate_mash: Float
    rate_matd: Float
    state_tax_rate: Float
    storage_payable: Float
    tax_lbr_rt: Float
    tax_levies_rt: Float
    tax_paint_mat_rt: Float
    tax_predis: Float
    tax_prethr: Float
    tax_pstthr: Float
    tax_str_rt: Float
    tax_sub_rt: Float
    tax_thramt: Float
    tax_tow_rt: Float
    towing_payable: Float
  }

  # order by avg() on columns of table "jobs"
  input jobs_avg_order_by {
    adj_g_disc: order_by
    adj_strdis: order_by
    adj_towdis: order_by
    adjustment_bottom_line: order_by
    clm_total: order_by
    ded_amt: order_by
    depreciation_taxes: order_by
    est_number: order_by
    federal_tax_payable: order_by
    federal_tax_rate: order_by
    g_bett_amt: order_by
    kmin: order_by
    kmout: order_by
    local_tax_rate: order_by
    other_amount_payable: order_by
    owner_owing: order_by
    pay_amt: order_by
    rate_atp: order_by
    rate_la1: order_by
    rate_la2: order_by
    rate_la3: order_by
    rate_la4: order_by
    rate_laa: order_by
    rate_lab: order_by
    rate_lad: order_by
    rate_lae: order_by
    rate_laf: order_by
    rate_lag: order_by
    rate_lam: order_by
    rate_lar: order_by
    rate_las: order_by
    rate_lau: order_by
    rate_ma2s: order_by
    rate_ma2t: order_by
    rate_ma3s: order_by
    rate_mabl: order_by
    rate_macs: order_by
    rate_mahw: order_by
    rate_mapa: order_by
    rate_mash: order_by
    rate_matd: order_by
    state_tax_rate: order_by
    storage_payable: order_by
    tax_lbr_rt: order_by
    tax_levies_rt: order_by
    tax_paint_mat_rt: order_by
    tax_predis: order_by
    tax_prethr: order_by
    tax_pstthr: order_by
    tax_str_rt: order_by
    tax_sub_rt: order_by
    tax_thramt: order_by
    tax_tow_rt: order_by
    towing_payable: order_by
  }

  # Boolean expression to filter rows from the table "jobs". All fields are combined with a logical 'AND'.
  input jobs_bool_exp {
    _and: [jobs_bool_exp]
    _not: jobs_bool_exp
    _or: [jobs_bool_exp]
    actual_completion: timestamptz_comparison_exp
    actual_delivery: timestamptz_comparison_exp
    actual_in: timestamptz_comparison_exp
    adj_g_disc: numeric_comparison_exp
    adj_strdis: numeric_comparison_exp
    adj_towdis: numeric_comparison_exp
    adjustment_bottom_line: numeric_comparison_exp
    agt_addr1: String_comparison_exp
    agt_addr2: String_comparison_exp
    agt_city: String_comparison_exp
    agt_co_id: String_comparison_exp
    agt_co_nm: String_comparison_exp
    agt_ct_fn: String_comparison_exp
    agt_ct_ln: String_comparison_exp
    agt_ct_ph: String_comparison_exp
    agt_ct_phx: String_comparison_exp
    agt_ctry: String_comparison_exp
    agt_ea: String_comparison_exp
    agt_fax: String_comparison_exp
    agt_faxx: String_comparison_exp
    agt_lic_no: String_comparison_exp
    agt_ph1: String_comparison_exp
    agt_ph1x: String_comparison_exp
    agt_ph2: String_comparison_exp
    agt_ph2x: String_comparison_exp
    agt_st: String_comparison_exp
    agt_zip: String_comparison_exp
    appointments: appointments_bool_exp
    area_of_damage: jsonb_comparison_exp
    asgn_date: date_comparison_exp
    asgn_no: String_comparison_exp
    asgn_type: String_comparison_exp
    available_jobs: available_jobs_bool_exp
    bodyshop: bodyshops_bool_exp
    cat_no: String_comparison_exp
    category: String_comparison_exp
    cccontracts: cccontracts_bool_exp
    cieca_stl: jsonb_comparison_exp
    cieca_ttl: jsonb_comparison_exp
    ciecaid: String_comparison_exp
    class: String_comparison_exp
    clm_addr1: String_comparison_exp
    clm_addr2: String_comparison_exp
    clm_city: String_comparison_exp
    clm_ct_fn: String_comparison_exp
    clm_ct_ln: String_comparison_exp
    clm_ct_ph: String_comparison_exp
    clm_ct_phx: String_comparison_exp
    clm_ctry: String_comparison_exp
    clm_ea: String_comparison_exp
    clm_fax: String_comparison_exp
    clm_faxx: String_comparison_exp
    clm_no: String_comparison_exp
    clm_ofc_id: String_comparison_exp
    clm_ofc_nm: String_comparison_exp
    clm_ph1: String_comparison_exp
    clm_ph1x: String_comparison_exp
    clm_ph2: String_comparison_exp
    clm_ph2x: String_comparison_exp
    clm_st: String_comparison_exp
    clm_title: String_comparison_exp
    clm_total: numeric_comparison_exp
    clm_zip: String_comparison_exp
    converted: Boolean_comparison_exp
    created_at: timestamptz_comparison_exp
    csiinvites: csi_bool_exp
    csr: String_comparison_exp
    cust_pr: String_comparison_exp
    date_closed: timestamptz_comparison_exp
    date_estimated: timestamptz_comparison_exp
    date_exported: timestamptz_comparison_exp
    date_invoiced: timestamptz_comparison_exp
    date_open: timestamptz_comparison_exp
    date_scheduled: timestamptz_comparison_exp
    ded_amt: numeric_comparison_exp
    ded_status: String_comparison_exp
    deliverchecklist: jsonb_comparison_exp
    depreciation_taxes: numeric_comparison_exp
    documents: documents_bool_exp
    employee_body: uuid_comparison_exp
    employee_body_rel: employees_bool_exp
    employee_prep: uuid_comparison_exp
    employee_prep_rel: employees_bool_exp
    employee_refinish: uuid_comparison_exp
    employee_refinish_rel: employees_bool_exp
    est_addr1: String_comparison_exp
    est_addr2: String_comparison_exp
    est_city: String_comparison_exp
    est_co_nm: String_comparison_exp
    est_ct_fn: String_comparison_exp
    est_ct_ln: String_comparison_exp
    est_ctry: String_comparison_exp
    est_ea: String_comparison_exp
    est_number: bigint_comparison_exp
    est_ph1: String_comparison_exp
    est_st: String_comparison_exp
    est_zip: String_comparison_exp
    federal_tax_payable: numeric_comparison_exp
    federal_tax_rate: numeric_comparison_exp
    g_bett_amt: numeric_comparison_exp
    id: uuid_comparison_exp
    inproduction: Boolean_comparison_exp
    ins_addr1: String_comparison_exp
    ins_addr2: String_comparison_exp
    ins_city: String_comparison_exp
    ins_co_id: String_comparison_exp
    ins_co_nm: String_comparison_exp
    ins_ct_fn: String_comparison_exp
    ins_ct_ln: String_comparison_exp
    ins_ct_ph: String_comparison_exp
    ins_ct_phx: String_comparison_exp
    ins_ctry: String_comparison_exp
    ins_ea: String_comparison_exp
    ins_fax: String_comparison_exp
    ins_faxx: String_comparison_exp
    ins_memo: String_comparison_exp
    ins_ph1: String_comparison_exp
    ins_ph1x: String_comparison_exp
    ins_ph2: String_comparison_exp
    ins_ph2x: String_comparison_exp
    ins_st: String_comparison_exp
    ins_title: String_comparison_exp
    ins_zip: String_comparison_exp
    insd_addr1: String_comparison_exp
    insd_addr2: String_comparison_exp
    insd_city: String_comparison_exp
    insd_co_nm: String_comparison_exp
    insd_ctry: String_comparison_exp
    insd_ea: String_comparison_exp
    insd_fax: String_comparison_exp
    insd_faxx: String_comparison_exp
    insd_fn: String_comparison_exp
    insd_ln: String_comparison_exp
    insd_ph1: String_comparison_exp
    insd_ph1x: String_comparison_exp
    insd_ph2: String_comparison_exp
    insd_ph2x: String_comparison_exp
    insd_st: String_comparison_exp
    insd_title: String_comparison_exp
    insd_zip: String_comparison_exp
    intakechecklist: jsonb_comparison_exp
    invoice: invoices_bool_exp
    invoice_allocation: jsonb_comparison_exp
    invoice_date: date_comparison_exp
    invoices: invoices_bool_exp
    job_conversations: job_conversations_bool_exp
    job_totals: jsonb_comparison_exp
    joblines: joblines_bool_exp
    joblines_status: joblines_status_bool_exp
    kanbanparent: String_comparison_exp
    kmin: Int_comparison_exp
    kmout: Int_comparison_exp
    labor_rate_desc: String_comparison_exp
    labor_rate_id: String_comparison_exp
    local_tax_rate: numeric_comparison_exp
    loss_cat: String_comparison_exp
    loss_date: date_comparison_exp
    loss_desc: String_comparison_exp
    loss_type: String_comparison_exp
    notes: notes_bool_exp
    other_amount_payable: numeric_comparison_exp
    owner: owners_bool_exp
    owner_owing: numeric_comparison_exp
    ownerid: uuid_comparison_exp
    ownr_addr1: String_comparison_exp
    ownr_addr2: String_comparison_exp
    ownr_city: String_comparison_exp
    ownr_co_nm: String_comparison_exp
    ownr_ctry: String_comparison_exp
    ownr_ea: String_comparison_exp
    ownr_fax: String_comparison_exp
    ownr_faxx: String_comparison_exp
    ownr_fn: String_comparison_exp
    ownr_ln: String_comparison_exp
    ownr_ph1: String_comparison_exp
    ownr_ph1x: String_comparison_exp
    ownr_ph2: String_comparison_exp
    ownr_ph2x: String_comparison_exp
    ownr_st: String_comparison_exp
    ownr_title: String_comparison_exp
    ownr_zip: String_comparison_exp
    parts_orders: parts_orders_bool_exp
    parts_tax_rates: jsonb_comparison_exp
    pay_amt: numeric_comparison_exp
    pay_chknm: String_comparison_exp
    pay_date: date_comparison_exp
    pay_type: String_comparison_exp
    payee_nms: String_comparison_exp
    payments: payments_bool_exp
    plate_no: String_comparison_exp
    plate_st: String_comparison_exp
    po_number: String_comparison_exp
    policy_no: String_comparison_exp
    production_vars: jsonb_comparison_exp
    rate_atp: numeric_comparison_exp
    rate_la1: numeric_comparison_exp
    rate_la2: numeric_comparison_exp
    rate_la3: numeric_comparison_exp
    rate_la4: numeric_comparison_exp
    rate_laa: numeric_comparison_exp
    rate_lab: numeric_comparison_exp
    rate_lad: numeric_comparison_exp
    rate_lae: numeric_comparison_exp
    rate_laf: numeric_comparison_exp
    rate_lag: numeric_comparison_exp
    rate_lam: numeric_comparison_exp
    rate_lar: numeric_comparison_exp
    rate_las: numeric_comparison_exp
    rate_lau: numeric_comparison_exp
    rate_ma2s: numeric_comparison_exp
    rate_ma2t: numeric_comparison_exp
    rate_ma3s: numeric_comparison_exp
    rate_mabl: numeric_comparison_exp
    rate_macs: numeric_comparison_exp
    rate_mahw: numeric_comparison_exp
    rate_mapa: numeric_comparison_exp
    rate_mash: numeric_comparison_exp
    rate_matd: numeric_comparison_exp
    referral_source: String_comparison_exp
    regie_number: String_comparison_exp
    ro_number: String_comparison_exp
    scheduled_completion: timestamptz_comparison_exp
    scheduled_delivery: timestamptz_comparison_exp
    scheduled_in: timestamptz_comparison_exp
    scoreboards: scoreboard_bool_exp
    selling_dealer: String_comparison_exp
    selling_dealer_contact: String_comparison_exp
    servicing_dealer: String_comparison_exp
    servicing_dealer_contact: String_comparison_exp
    shopid: uuid_comparison_exp
    special_coverage_policy: Boolean_comparison_exp
    state_tax_rate: numeric_comparison_exp
    status: String_comparison_exp
    storage_payable: numeric_comparison_exp
    tax_lbr_rt: numeric_comparison_exp
    tax_levies_rt: numeric_comparison_exp
    tax_paint_mat_rt: numeric_comparison_exp
    tax_predis: numeric_comparison_exp
    tax_prethr: numeric_comparison_exp
    tax_pstthr: numeric_comparison_exp
    tax_registration_number: String_comparison_exp
    tax_str_rt: numeric_comparison_exp
    tax_sub_rt: numeric_comparison_exp
    tax_thramt: numeric_comparison_exp
    tax_tow_rt: numeric_comparison_exp
    theft_ind: Boolean_comparison_exp
    timetickets: timetickets_bool_exp
    tlos_ind: Boolean_comparison_exp
    towing_payable: numeric_comparison_exp
    unit_number: String_comparison_exp
    updated_at: timestamptz_comparison_exp
    v_color: String_comparison_exp
    v_make_desc: String_comparison_exp
    v_model_desc: String_comparison_exp
    v_model_yr: String_comparison_exp
    v_vin: String_comparison_exp
    vehicle: vehicles_bool_exp
    vehicleid: uuid_comparison_exp
  }

  # unique or primary key constraints on table "jobs"
  enum jobs_constraint {
    # unique or primary key constraint
    jobs_pkey
  }

  # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
  input jobs_delete_at_path_input {
    area_of_damage: [String]
    cieca_stl: [String]
    cieca_ttl: [String]
    deliverchecklist: [String]
    intakechecklist: [String]
    invoice_allocation: [String]
    job_totals: [String]
    parts_tax_rates: [String]
    production_vars: [String]
  }

  # delete the array element with specified index (negative integers count from the
  # end). throws an error if top level container is not an array
  input jobs_delete_elem_input {
    area_of_damage: Int
    cieca_stl: Int
    cieca_ttl: Int
    deliverchecklist: Int
    intakechecklist: Int
    invoice_allocation: Int
    job_totals: Int
    parts_tax_rates: Int
    production_vars: Int
  }

  # delete key/value pair or string element. key/value pairs are matched based on their key value
  input jobs_delete_key_input {
    area_of_damage: String
    cieca_stl: String
    cieca_ttl: String
    deliverchecklist: String
    intakechecklist: String
    invoice_allocation: String
    job_totals: String
    parts_tax_rates: String
    production_vars: String
  }

  # input type for incrementing integer column in table "jobs"
  input jobs_inc_input {
    adj_g_disc: numeric
    adj_strdis: numeric
    adj_towdis: numeric
    adjustment_bottom_line: numeric
    clm_total: numeric
    ded_amt: numeric
    depreciation_taxes: numeric
    est_number: bigint
    federal_tax_payable: numeric
    federal_tax_rate: numeric
    g_bett_amt: numeric
    kmin: Int
    kmout: Int
    local_tax_rate: numeric
    other_amount_payable: numeric
    owner_owing: numeric
    pay_amt: numeric
    rate_atp: numeric
    rate_la1: numeric
    rate_la2: numeric
    rate_la3: numeric
    rate_la4: numeric
    rate_laa: numeric
    rate_lab: numeric
    rate_lad: numeric
    rate_lae: numeric
    rate_laf: numeric
    rate_lag: numeric
    rate_lam: numeric
    rate_lar: numeric
    rate_las: numeric
    rate_lau: numeric
    rate_ma2s: numeric
    rate_ma2t: numeric
    rate_ma3s: numeric
    rate_mabl: numeric
    rate_macs: numeric
    rate_mahw: numeric
    rate_mapa: numeric
    rate_mash: numeric
    rate_matd: numeric
    state_tax_rate: numeric
    storage_payable: numeric
    tax_lbr_rt: numeric
    tax_levies_rt: numeric
    tax_paint_mat_rt: numeric
    tax_predis: numeric
    tax_prethr: numeric
    tax_pstthr: numeric
    tax_str_rt: numeric
    tax_sub_rt: numeric
    tax_thramt: numeric
    tax_tow_rt: numeric
    towing_payable: numeric
  }

  # input type for inserting data into table "jobs"
  input jobs_insert_input {
    actual_completion: timestamptz
    actual_delivery: timestamptz
    actual_in: timestamptz
    adj_g_disc: numeric
    adj_strdis: numeric
    adj_towdis: numeric
    adjustment_bottom_line: numeric
    agt_addr1: String
    agt_addr2: String
    agt_city: String
    agt_co_id: String
    agt_co_nm: String
    agt_ct_fn: String
    agt_ct_ln: String
    agt_ct_ph: String
    agt_ct_phx: String
    agt_ctry: String
    agt_ea: String
    agt_fax: String
    agt_faxx: String
    agt_lic_no: String
    agt_ph1: String
    agt_ph1x: String
    agt_ph2: String
    agt_ph2x: String
    agt_st: String
    agt_zip: String
    appointments: appointments_arr_rel_insert_input
    area_of_damage: jsonb
    asgn_date: date
    asgn_no: String
    asgn_type: String
    available_jobs: available_jobs_arr_rel_insert_input
    bodyshop: bodyshops_obj_rel_insert_input
    cat_no: String
    category: String
    cccontracts: cccontracts_arr_rel_insert_input
    cieca_stl: jsonb
    cieca_ttl: jsonb
    ciecaid: String
    class: String
    clm_addr1: String
    clm_addr2: String
    clm_city: String
    clm_ct_fn: String
    clm_ct_ln: String
    clm_ct_ph: String
    clm_ct_phx: String
    clm_ctry: String
    clm_ea: String
    clm_fax: String
    clm_faxx: String
    clm_no: String
    clm_ofc_id: String
    clm_ofc_nm: String
    clm_ph1: String
    clm_ph1x: String
    clm_ph2: String
    clm_ph2x: String
    clm_st: String
    clm_title: String
    clm_total: numeric
    clm_zip: String
    converted: Boolean
    created_at: timestamptz
    csiinvites: csi_arr_rel_insert_input
    csr: String
    cust_pr: String
    date_closed: timestamptz
    date_estimated: timestamptz
    date_exported: timestamptz
    date_invoiced: timestamptz
    date_open: timestamptz
    date_scheduled: timestamptz
    ded_amt: numeric
    ded_status: String
    deliverchecklist: jsonb
    depreciation_taxes: numeric
    documents: documents_arr_rel_insert_input
    employee_body: uuid
    employee_body_rel: employees_obj_rel_insert_input
    employee_prep: uuid
    employee_prep_rel: employees_obj_rel_insert_input
    employee_refinish: uuid
    employee_refinish_rel: employees_obj_rel_insert_input
    est_addr1: String
    est_addr2: String
    est_city: String
    est_co_nm: String
    est_ct_fn: String
    est_ct_ln: String
    est_ctry: String
    est_ea: String
    est_number: bigint
    est_ph1: String
    est_st: String
    est_zip: String
    federal_tax_payable: numeric
    federal_tax_rate: numeric
    g_bett_amt: numeric
    id: uuid
    inproduction: Boolean
    ins_addr1: String
    ins_addr2: String
    ins_city: String
    ins_co_id: String
    ins_co_nm: String
    ins_ct_fn: String
    ins_ct_ln: String
    ins_ct_ph: String
    ins_ct_phx: String
    ins_ctry: String
    ins_ea: String
    ins_fax: String
    ins_faxx: String
    ins_memo: String
    ins_ph1: String
    ins_ph1x: String
    ins_ph2: String
    ins_ph2x: String
    ins_st: String
    ins_title: String
    ins_zip: String
    insd_addr1: String
    insd_addr2: String
    insd_city: String
    insd_co_nm: String
    insd_ctry: String
    insd_ea: String
    insd_fax: String
    insd_faxx: String
    insd_fn: String
    insd_ln: String
    insd_ph1: String
    insd_ph1x: String
    insd_ph2: String
    insd_ph2x: String
    insd_st: String
    insd_title: String
    insd_zip: String
    intakechecklist: jsonb
    invoice: invoices_obj_rel_insert_input
    invoice_allocation: jsonb
    invoice_date: date
    invoices: invoices_arr_rel_insert_input
    job_conversations: job_conversations_arr_rel_insert_input
    job_totals: jsonb
    joblines: joblines_arr_rel_insert_input
    kanbanparent: String
    kmin: Int
    kmout: Int
    labor_rate_desc: String
    labor_rate_id: String
    local_tax_rate: numeric
    loss_cat: String
    loss_date: date
    loss_desc: String
    loss_type: String
    notes: notes_arr_rel_insert_input
    other_amount_payable: numeric
    owner: owners_obj_rel_insert_input
    owner_owing: numeric
    ownerid: uuid
    ownr_addr1: String
    ownr_addr2: String
    ownr_city: String
    ownr_co_nm: String
    ownr_ctry: String
    ownr_ea: String
    ownr_fax: String
    ownr_faxx: String
    ownr_fn: String
    ownr_ln: String
    ownr_ph1: String
    ownr_ph1x: String
    ownr_ph2: String
    ownr_ph2x: String
    ownr_st: String
    ownr_title: String
    ownr_zip: String
    parts_orders: parts_orders_arr_rel_insert_input
    parts_tax_rates: jsonb
    pay_amt: numeric
    pay_chknm: String
    pay_date: date
    pay_type: String
    payee_nms: String
    payments: payments_arr_rel_insert_input
    plate_no: String
    plate_st: String
    po_number: String
    policy_no: String
    production_vars: jsonb
    rate_atp: numeric
    rate_la1: numeric
    rate_la2: numeric
    rate_la3: numeric
    rate_la4: numeric
    rate_laa: numeric
    rate_lab: numeric
    rate_lad: numeric
    rate_lae: numeric
    rate_laf: numeric
    rate_lag: numeric
    rate_lam: numeric
    rate_lar: numeric
    rate_las: numeric
    rate_lau: numeric
    rate_ma2s: numeric
    rate_ma2t: numeric
    rate_ma3s: numeric
    rate_mabl: numeric
    rate_macs: numeric
    rate_mahw: numeric
    rate_mapa: numeric
    rate_mash: numeric
    rate_matd: numeric
    referral_source: String
    regie_number: String
    ro_number: String
    scheduled_completion: timestamptz
    scheduled_delivery: timestamptz
    scheduled_in: timestamptz
    scoreboards: scoreboard_arr_rel_insert_input
    selling_dealer: String
    selling_dealer_contact: String
    servicing_dealer: String
    servicing_dealer_contact: String
    shopid: uuid
    special_coverage_policy: Boolean
    state_tax_rate: numeric
    status: String
    storage_payable: numeric
    tax_lbr_rt: numeric
    tax_levies_rt: numeric
    tax_paint_mat_rt: numeric
    tax_predis: numeric
    tax_prethr: numeric
    tax_pstthr: numeric
    tax_registration_number: String
    tax_str_rt: numeric
    tax_sub_rt: numeric
    tax_thramt: numeric
    tax_tow_rt: numeric
    theft_ind: Boolean
    timetickets: timetickets_arr_rel_insert_input
    tlos_ind: Boolean
    towing_payable: numeric
    unit_number: String
    updated_at: timestamptz
    v_color: String
    v_make_desc: String
    v_model_desc: String
    v_model_yr: String
    v_vin: String
    vehicle: vehicles_obj_rel_insert_input
    vehicleid: uuid
  }

  # aggregate max on columns
  type jobs_max_fields {
    actual_completion: timestamptz
    actual_delivery: timestamptz
    actual_in: timestamptz
    adj_g_disc: numeric
    adj_strdis: numeric
    adj_towdis: numeric
    adjustment_bottom_line: numeric
    agt_addr1: String
    agt_addr2: String
    agt_city: String
    agt_co_id: String
    agt_co_nm: String
    agt_ct_fn: String
    agt_ct_ln: String
    agt_ct_ph: String
    agt_ct_phx: String
    agt_ctry: String
    agt_ea: String
    agt_fax: String
    agt_faxx: String
    agt_lic_no: String
    agt_ph1: String
    agt_ph1x: String
    agt_ph2: String
    agt_ph2x: String
    agt_st: String
    agt_zip: String
    asgn_date: date
    asgn_no: String
    asgn_type: String
    cat_no: String
    category: String
    ciecaid: String
    class: String
    clm_addr1: String
    clm_addr2: String
    clm_city: String
    clm_ct_fn: String
    clm_ct_ln: String
    clm_ct_ph: String
    clm_ct_phx: String
    clm_ctry: String
    clm_ea: String
    clm_fax: String
    clm_faxx: String
    clm_no: String
    clm_ofc_id: String
    clm_ofc_nm: String
    clm_ph1: String
    clm_ph1x: String
    clm_ph2: String
    clm_ph2x: String
    clm_st: String
    clm_title: String
    clm_total: numeric
    clm_zip: String
    created_at: timestamptz
    csr: String
    cust_pr: String
    date_closed: timestamptz
    date_estimated: timestamptz
    date_exported: timestamptz
    date_invoiced: timestamptz
    date_open: timestamptz
    date_scheduled: timestamptz
    ded_amt: numeric
    ded_status: String
    depreciation_taxes: numeric
    employee_body: uuid
    employee_prep: uuid
    employee_refinish: uuid
    est_addr1: String
    est_addr2: String
    est_city: String
    est_co_nm: String
    est_ct_fn: String
    est_ct_ln: String
    est_ctry: String
    est_ea: String
    est_number: bigint
    est_ph1: String
    est_st: String
    est_zip: String
    federal_tax_payable: numeric
    federal_tax_rate: numeric
    g_bett_amt: numeric
    id: uuid
    ins_addr1: String
    ins_addr2: String
    ins_city: String
    ins_co_id: String
    ins_co_nm: String
    ins_ct_fn: String
    ins_ct_ln: String
    ins_ct_ph: String
    ins_ct_phx: String
    ins_ctry: String
    ins_ea: String
    ins_fax: String
    ins_faxx: String
    ins_memo: String
    ins_ph1: String
    ins_ph1x: String
    ins_ph2: String
    ins_ph2x: String
    ins_st: String
    ins_title: String
    ins_zip: String
    insd_addr1: String
    insd_addr2: String
    insd_city: String
    insd_co_nm: String
    insd_ctry: String
    insd_ea: String
    insd_fax: String
    insd_faxx: String
    insd_fn: String
    insd_ln: String
    insd_ph1: String
    insd_ph1x: String
    insd_ph2: String
    insd_ph2x: String
    insd_st: String
    insd_title: String
    insd_zip: String
    invoice_date: date
    kanbanparent: String
    kmin: Int
    kmout: Int
    labor_rate_desc: String
    labor_rate_id: String
    local_tax_rate: numeric
    loss_cat: String
    loss_date: date
    loss_desc: String
    loss_type: String
    other_amount_payable: numeric
    owner_owing: numeric
    ownerid: uuid
    ownr_addr1: String
    ownr_addr2: String
    ownr_city: String
    ownr_co_nm: String
    ownr_ctry: String
    ownr_ea: String
    ownr_fax: String
    ownr_faxx: String
    ownr_fn: String
    ownr_ln: String
    ownr_ph1: String
    ownr_ph1x: String
    ownr_ph2: String
    ownr_ph2x: String
    ownr_st: String
    ownr_title: String
    ownr_zip: String
    pay_amt: numeric
    pay_chknm: String
    pay_date: date
    pay_type: String
    payee_nms: String
    plate_no: String
    plate_st: String
    po_number: String
    policy_no: String
    rate_atp: numeric
    rate_la1: numeric
    rate_la2: numeric
    rate_la3: numeric
    rate_la4: numeric
    rate_laa: numeric
    rate_lab: numeric
    rate_lad: numeric
    rate_lae: numeric
    rate_laf: numeric
    rate_lag: numeric
    rate_lam: numeric
    rate_lar: numeric
    rate_las: numeric
    rate_lau: numeric
    rate_ma2s: numeric
    rate_ma2t: numeric
    rate_ma3s: numeric
    rate_mabl: numeric
    rate_macs: numeric
    rate_mahw: numeric
    rate_mapa: numeric
    rate_mash: numeric
    rate_matd: numeric
    referral_source: String
    regie_number: String
    ro_number: String
    scheduled_completion: timestamptz
    scheduled_delivery: timestamptz
    scheduled_in: timestamptz
    selling_dealer: String
    selling_dealer_contact: String
    servicing_dealer: String
    servicing_dealer_contact: String
    shopid: uuid
    state_tax_rate: numeric
    status: String
    storage_payable: numeric
    tax_lbr_rt: numeric
    tax_levies_rt: numeric
    tax_paint_mat_rt: numeric
    tax_predis: numeric
    tax_prethr: numeric
    tax_pstthr: numeric
    tax_registration_number: String
    tax_str_rt: numeric
    tax_sub_rt: numeric
    tax_thramt: numeric
    tax_tow_rt: numeric
    towing_payable: numeric
    unit_number: String
    updated_at: timestamptz
    v_color: String
    v_make_desc: String
    v_model_desc: String
    v_model_yr: String
    v_vin: String
    vehicleid: uuid
  }

  # order by max() on columns of table "jobs"
  input jobs_max_order_by {
    actual_completion: order_by
    actual_delivery: order_by
    actual_in: order_by
    adj_g_disc: order_by
    adj_strdis: order_by
    adj_towdis: order_by
    adjustment_bottom_line: order_by
    agt_addr1: order_by
    agt_addr2: order_by
    agt_city: order_by
    agt_co_id: order_by
    agt_co_nm: order_by
    agt_ct_fn: order_by
    agt_ct_ln: order_by
    agt_ct_ph: order_by
    agt_ct_phx: order_by
    agt_ctry: order_by
    agt_ea: order_by
    agt_fax: order_by
    agt_faxx: order_by
    agt_lic_no: order_by
    agt_ph1: order_by
    agt_ph1x: order_by
    agt_ph2: order_by
    agt_ph2x: order_by
    agt_st: order_by
    agt_zip: order_by
    asgn_date: order_by
    asgn_no: order_by
    asgn_type: order_by
    cat_no: order_by
    category: order_by
    ciecaid: order_by
    class: order_by
    clm_addr1: order_by
    clm_addr2: order_by
    clm_city: order_by
    clm_ct_fn: order_by
    clm_ct_ln: order_by
    clm_ct_ph: order_by
    clm_ct_phx: order_by
    clm_ctry: order_by
    clm_ea: order_by
    clm_fax: order_by
    clm_faxx: order_by
    clm_no: order_by
    clm_ofc_id: order_by
    clm_ofc_nm: order_by
    clm_ph1: order_by
    clm_ph1x: order_by
    clm_ph2: order_by
    clm_ph2x: order_by
    clm_st: order_by
    clm_title: order_by
    clm_total: order_by
    clm_zip: order_by
    created_at: order_by
    csr: order_by
    cust_pr: order_by
    date_closed: order_by
    date_estimated: order_by
    date_exported: order_by
    date_invoiced: order_by
    date_open: order_by
    date_scheduled: order_by
    ded_amt: order_by
    ded_status: order_by
    depreciation_taxes: order_by
    employee_body: order_by
    employee_prep: order_by
    employee_refinish: order_by
    est_addr1: order_by
    est_addr2: order_by
    est_city: order_by
    est_co_nm: order_by
    est_ct_fn: order_by
    est_ct_ln: order_by
    est_ctry: order_by
    est_ea: order_by
    est_number: order_by
    est_ph1: order_by
    est_st: order_by
    est_zip: order_by
    federal_tax_payable: order_by
    federal_tax_rate: order_by
    g_bett_amt: order_by
    id: order_by
    ins_addr1: order_by
    ins_addr2: order_by
    ins_city: order_by
    ins_co_id: order_by
    ins_co_nm: order_by
    ins_ct_fn: order_by
    ins_ct_ln: order_by
    ins_ct_ph: order_by
    ins_ct_phx: order_by
    ins_ctry: order_by
    ins_ea: order_by
    ins_fax: order_by
    ins_faxx: order_by
    ins_memo: order_by
    ins_ph1: order_by
    ins_ph1x: order_by
    ins_ph2: order_by
    ins_ph2x: order_by
    ins_st: order_by
    ins_title: order_by
    ins_zip: order_by
    insd_addr1: order_by
    insd_addr2: order_by
    insd_city: order_by
    insd_co_nm: order_by
    insd_ctry: order_by
    insd_ea: order_by
    insd_fax: order_by
    insd_faxx: order_by
    insd_fn: order_by
    insd_ln: order_by
    insd_ph1: order_by
    insd_ph1x: order_by
    insd_ph2: order_by
    insd_ph2x: order_by
    insd_st: order_by
    insd_title: order_by
    insd_zip: order_by
    invoice_date: order_by
    kanbanparent: order_by
    kmin: order_by
    kmout: order_by
    labor_rate_desc: order_by
    labor_rate_id: order_by
    local_tax_rate: order_by
    loss_cat: order_by
    loss_date: order_by
    loss_desc: order_by
    loss_type: order_by
    other_amount_payable: order_by
    owner_owing: order_by
    ownerid: order_by
    ownr_addr1: order_by
    ownr_addr2: order_by
    ownr_city: order_by
    ownr_co_nm: order_by
    ownr_ctry: order_by
    ownr_ea: order_by
    ownr_fax: order_by
    ownr_faxx: order_by
    ownr_fn: order_by
    ownr_ln: order_by
    ownr_ph1: order_by
    ownr_ph1x: order_by
    ownr_ph2: order_by
    ownr_ph2x: order_by
    ownr_st: order_by
    ownr_title: order_by
    ownr_zip: order_by
    pay_amt: order_by
    pay_chknm: order_by
    pay_date: order_by
    pay_type: order_by
    payee_nms: order_by
    plate_no: order_by
    plate_st: order_by
    po_number: order_by
    policy_no: order_by
    rate_atp: order_by
    rate_la1: order_by
    rate_la2: order_by
    rate_la3: order_by
    rate_la4: order_by
    rate_laa: order_by
    rate_lab: order_by
    rate_lad: order_by
    rate_lae: order_by
    rate_laf: order_by
    rate_lag: order_by
    rate_lam: order_by
    rate_lar: order_by
    rate_las: order_by
    rate_lau: order_by
    rate_ma2s: order_by
    rate_ma2t: order_by
    rate_ma3s: order_by
    rate_mabl: order_by
    rate_macs: order_by
    rate_mahw: order_by
    rate_mapa: order_by
    rate_mash: order_by
    rate_matd: order_by
    referral_source: order_by
    regie_number: order_by
    ro_number: order_by
    scheduled_completion: order_by
    scheduled_delivery: order_by
    scheduled_in: order_by
    selling_dealer: order_by
    selling_dealer_contact: order_by
    servicing_dealer: order_by
    servicing_dealer_contact: order_by
    shopid: order_by
    state_tax_rate: order_by
    status: order_by
    storage_payable: order_by
    tax_lbr_rt: order_by
    tax_levies_rt: order_by
    tax_paint_mat_rt: order_by
    tax_predis: order_by
    tax_prethr: order_by
    tax_pstthr: order_by
    tax_registration_number: order_by
    tax_str_rt: order_by
    tax_sub_rt: order_by
    tax_thramt: order_by
    tax_tow_rt: order_by
    towing_payable: order_by
    unit_number: order_by
    updated_at: order_by
    v_color: order_by
    v_make_desc: order_by
    v_model_desc: order_by
    v_model_yr: order_by
    v_vin: order_by
    vehicleid: order_by
  }

  # aggregate min on columns
  type jobs_min_fields {
    actual_completion: timestamptz
    actual_delivery: timestamptz
    actual_in: timestamptz
    adj_g_disc: numeric
    adj_strdis: numeric
    adj_towdis: numeric
    adjustment_bottom_line: numeric
    agt_addr1: String
    agt_addr2: String
    agt_city: String
    agt_co_id: String
    agt_co_nm: String
    agt_ct_fn: String
    agt_ct_ln: String
    agt_ct_ph: String
    agt_ct_phx: String
    agt_ctry: String
    agt_ea: String
    agt_fax: String
    agt_faxx: String
    agt_lic_no: String
    agt_ph1: String
    agt_ph1x: String
    agt_ph2: String
    agt_ph2x: String
    agt_st: String
    agt_zip: String
    asgn_date: date
    asgn_no: String
    asgn_type: String
    cat_no: String
    category: String
    ciecaid: String
    class: String
    clm_addr1: String
    clm_addr2: String
    clm_city: String
    clm_ct_fn: String
    clm_ct_ln: String
    clm_ct_ph: String
    clm_ct_phx: String
    clm_ctry: String
    clm_ea: String
    clm_fax: String
    clm_faxx: String
    clm_no: String
    clm_ofc_id: String
    clm_ofc_nm: String
    clm_ph1: String
    clm_ph1x: String
    clm_ph2: String
    clm_ph2x: String
    clm_st: String
    clm_title: String
    clm_total: numeric
    clm_zip: String
    created_at: timestamptz
    csr: String
    cust_pr: String
    date_closed: timestamptz
    date_estimated: timestamptz
    date_exported: timestamptz
    date_invoiced: timestamptz
    date_open: timestamptz
    date_scheduled: timestamptz
    ded_amt: numeric
    ded_status: String
    depreciation_taxes: numeric
    employee_body: uuid
    employee_prep: uuid
    employee_refinish: uuid
    est_addr1: String
    est_addr2: String
    est_city: String
    est_co_nm: String
    est_ct_fn: String
    est_ct_ln: String
    est_ctry: String
    est_ea: String
    est_number: bigint
    est_ph1: String
    est_st: String
    est_zip: String
    federal_tax_payable: numeric
    federal_tax_rate: numeric
    g_bett_amt: numeric
    id: uuid
    ins_addr1: String
    ins_addr2: String
    ins_city: String
    ins_co_id: String
    ins_co_nm: String
    ins_ct_fn: String
    ins_ct_ln: String
    ins_ct_ph: String
    ins_ct_phx: String
    ins_ctry: String
    ins_ea: String
    ins_fax: String
    ins_faxx: String
    ins_memo: String
    ins_ph1: String
    ins_ph1x: String
    ins_ph2: String
    ins_ph2x: String
    ins_st: String
    ins_title: String
    ins_zip: String
    insd_addr1: String
    insd_addr2: String
    insd_city: String
    insd_co_nm: String
    insd_ctry: String
    insd_ea: String
    insd_fax: String
    insd_faxx: String
    insd_fn: String
    insd_ln: String
    insd_ph1: String
    insd_ph1x: String
    insd_ph2: String
    insd_ph2x: String
    insd_st: String
    insd_title: String
    insd_zip: String
    invoice_date: date
    kanbanparent: String
    kmin: Int
    kmout: Int
    labor_rate_desc: String
    labor_rate_id: String
    local_tax_rate: numeric
    loss_cat: String
    loss_date: date
    loss_desc: String
    loss_type: String
    other_amount_payable: numeric
    owner_owing: numeric
    ownerid: uuid
    ownr_addr1: String
    ownr_addr2: String
    ownr_city: String
    ownr_co_nm: String
    ownr_ctry: String
    ownr_ea: String
    ownr_fax: String
    ownr_faxx: String
    ownr_fn: String
    ownr_ln: String
    ownr_ph1: String
    ownr_ph1x: String
    ownr_ph2: String
    ownr_ph2x: String
    ownr_st: String
    ownr_title: String
    ownr_zip: String
    pay_amt: numeric
    pay_chknm: String
    pay_date: date
    pay_type: String
    payee_nms: String
    plate_no: String
    plate_st: String
    po_number: String
    policy_no: String
    rate_atp: numeric
    rate_la1: numeric
    rate_la2: numeric
    rate_la3: numeric
    rate_la4: numeric
    rate_laa: numeric
    rate_lab: numeric
    rate_lad: numeric
    rate_lae: numeric
    rate_laf: numeric
    rate_lag: numeric
    rate_lam: numeric
    rate_lar: numeric
    rate_las: numeric
    rate_lau: numeric
    rate_ma2s: numeric
    rate_ma2t: numeric
    rate_ma3s: numeric
    rate_mabl: numeric
    rate_macs: numeric
    rate_mahw: numeric
    rate_mapa: numeric
    rate_mash: numeric
    rate_matd: numeric
    referral_source: String
    regie_number: String
    ro_number: String
    scheduled_completion: timestamptz
    scheduled_delivery: timestamptz
    scheduled_in: timestamptz
    selling_dealer: String
    selling_dealer_contact: String
    servicing_dealer: String
    servicing_dealer_contact: String
    shopid: uuid
    state_tax_rate: numeric
    status: String
    storage_payable: numeric
    tax_lbr_rt: numeric
    tax_levies_rt: numeric
    tax_paint_mat_rt: numeric
    tax_predis: numeric
    tax_prethr: numeric
    tax_pstthr: numeric
    tax_registration_number: String
    tax_str_rt: numeric
    tax_sub_rt: numeric
    tax_thramt: numeric
    tax_tow_rt: numeric
    towing_payable: numeric
    unit_number: String
    updated_at: timestamptz
    v_color: String
    v_make_desc: String
    v_model_desc: String
    v_model_yr: String
    v_vin: String
    vehicleid: uuid
  }

  # order by min() on columns of table "jobs"
  input jobs_min_order_by {
    actual_completion: order_by
    actual_delivery: order_by
    actual_in: order_by
    adj_g_disc: order_by
    adj_strdis: order_by
    adj_towdis: order_by
    adjustment_bottom_line: order_by
    agt_addr1: order_by
    agt_addr2: order_by
    agt_city: order_by
    agt_co_id: order_by
    agt_co_nm: order_by
    agt_ct_fn: order_by
    agt_ct_ln: order_by
    agt_ct_ph: order_by
    agt_ct_phx: order_by
    agt_ctry: order_by
    agt_ea: order_by
    agt_fax: order_by
    agt_faxx: order_by
    agt_lic_no: order_by
    agt_ph1: order_by
    agt_ph1x: order_by
    agt_ph2: order_by
    agt_ph2x: order_by
    agt_st: order_by
    agt_zip: order_by
    asgn_date: order_by
    asgn_no: order_by
    asgn_type: order_by
    cat_no: order_by
    category: order_by
    ciecaid: order_by
    class: order_by
    clm_addr1: order_by
    clm_addr2: order_by
    clm_city: order_by
    clm_ct_fn: order_by
    clm_ct_ln: order_by
    clm_ct_ph: order_by
    clm_ct_phx: order_by
    clm_ctry: order_by
    clm_ea: order_by
    clm_fax: order_by
    clm_faxx: order_by
    clm_no: order_by
    clm_ofc_id: order_by
    clm_ofc_nm: order_by
    clm_ph1: order_by
    clm_ph1x: order_by
    clm_ph2: order_by
    clm_ph2x: order_by
    clm_st: order_by
    clm_title: order_by
    clm_total: order_by
    clm_zip: order_by
    created_at: order_by
    csr: order_by
    cust_pr: order_by
    date_closed: order_by
    date_estimated: order_by
    date_exported: order_by
    date_invoiced: order_by
    date_open: order_by
    date_scheduled: order_by
    ded_amt: order_by
    ded_status: order_by
    depreciation_taxes: order_by
    employee_body: order_by
    employee_prep: order_by
    employee_refinish: order_by
    est_addr1: order_by
    est_addr2: order_by
    est_city: order_by
    est_co_nm: order_by
    est_ct_fn: order_by
    est_ct_ln: order_by
    est_ctry: order_by
    est_ea: order_by
    est_number: order_by
    est_ph1: order_by
    est_st: order_by
    est_zip: order_by
    federal_tax_payable: order_by
    federal_tax_rate: order_by
    g_bett_amt: order_by
    id: order_by
    ins_addr1: order_by
    ins_addr2: order_by
    ins_city: order_by
    ins_co_id: order_by
    ins_co_nm: order_by
    ins_ct_fn: order_by
    ins_ct_ln: order_by
    ins_ct_ph: order_by
    ins_ct_phx: order_by
    ins_ctry: order_by
    ins_ea: order_by
    ins_fax: order_by
    ins_faxx: order_by
    ins_memo: order_by
    ins_ph1: order_by
    ins_ph1x: order_by
    ins_ph2: order_by
    ins_ph2x: order_by
    ins_st: order_by
    ins_title: order_by
    ins_zip: order_by
    insd_addr1: order_by
    insd_addr2: order_by
    insd_city: order_by
    insd_co_nm: order_by
    insd_ctry: order_by
    insd_ea: order_by
    insd_fax: order_by
    insd_faxx: order_by
    insd_fn: order_by
    insd_ln: order_by
    insd_ph1: order_by
    insd_ph1x: order_by
    insd_ph2: order_by
    insd_ph2x: order_by
    insd_st: order_by
    insd_title: order_by
    insd_zip: order_by
    invoice_date: order_by
    kanbanparent: order_by
    kmin: order_by
    kmout: order_by
    labor_rate_desc: order_by
    labor_rate_id: order_by
    local_tax_rate: order_by
    loss_cat: order_by
    loss_date: order_by
    loss_desc: order_by
    loss_type: order_by
    other_amount_payable: order_by
    owner_owing: order_by
    ownerid: order_by
    ownr_addr1: order_by
    ownr_addr2: order_by
    ownr_city: order_by
    ownr_co_nm: order_by
    ownr_ctry: order_by
    ownr_ea: order_by
    ownr_fax: order_by
    ownr_faxx: order_by
    ownr_fn: order_by
    ownr_ln: order_by
    ownr_ph1: order_by
    ownr_ph1x: order_by
    ownr_ph2: order_by
    ownr_ph2x: order_by
    ownr_st: order_by
    ownr_title: order_by
    ownr_zip: order_by
    pay_amt: order_by
    pay_chknm: order_by
    pay_date: order_by
    pay_type: order_by
    payee_nms: order_by
    plate_no: order_by
    plate_st: order_by
    po_number: order_by
    policy_no: order_by
    rate_atp: order_by
    rate_la1: order_by
    rate_la2: order_by
    rate_la3: order_by
    rate_la4: order_by
    rate_laa: order_by
    rate_lab: order_by
    rate_lad: order_by
    rate_lae: order_by
    rate_laf: order_by
    rate_lag: order_by
    rate_lam: order_by
    rate_lar: order_by
    rate_las: order_by
    rate_lau: order_by
    rate_ma2s: order_by
    rate_ma2t: order_by
    rate_ma3s: order_by
    rate_mabl: order_by
    rate_macs: order_by
    rate_mahw: order_by
    rate_mapa: order_by
    rate_mash: order_by
    rate_matd: order_by
    referral_source: order_by
    regie_number: order_by
    ro_number: order_by
    scheduled_completion: order_by
    scheduled_delivery: order_by
    scheduled_in: order_by
    selling_dealer: order_by
    selling_dealer_contact: order_by
    servicing_dealer: order_by
    servicing_dealer_contact: order_by
    shopid: order_by
    state_tax_rate: order_by
    status: order_by
    storage_payable: order_by
    tax_lbr_rt: order_by
    tax_levies_rt: order_by
    tax_paint_mat_rt: order_by
    tax_predis: order_by
    tax_prethr: order_by
    tax_pstthr: order_by
    tax_registration_number: order_by
    tax_str_rt: order_by
    tax_sub_rt: order_by
    tax_thramt: order_by
    tax_tow_rt: order_by
    towing_payable: order_by
    unit_number: order_by
    updated_at: order_by
    v_color: order_by
    v_make_desc: order_by
    v_model_desc: order_by
    v_model_yr: order_by
    v_vin: order_by
    vehicleid: order_by
  }

  # response of any mutation on the table "jobs"
  type jobs_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [jobs!]!
  }

  # input type for inserting object relation for remote table "jobs"
  input jobs_obj_rel_insert_input {
    data: jobs_insert_input!
    on_conflict: jobs_on_conflict
  }

  # on conflict condition type for table "jobs"
  input jobs_on_conflict {
    constraint: jobs_constraint!
    update_columns: [jobs_update_column!]!
    where: jobs_bool_exp
  }

  # ordering options when selecting data from "jobs"
  input jobs_order_by {
    actual_completion: order_by
    actual_delivery: order_by
    actual_in: order_by
    adj_g_disc: order_by
    adj_strdis: order_by
    adj_towdis: order_by
    adjustment_bottom_line: order_by
    agt_addr1: order_by
    agt_addr2: order_by
    agt_city: order_by
    agt_co_id: order_by
    agt_co_nm: order_by
    agt_ct_fn: order_by
    agt_ct_ln: order_by
    agt_ct_ph: order_by
    agt_ct_phx: order_by
    agt_ctry: order_by
    agt_ea: order_by
    agt_fax: order_by
    agt_faxx: order_by
    agt_lic_no: order_by
    agt_ph1: order_by
    agt_ph1x: order_by
    agt_ph2: order_by
    agt_ph2x: order_by
    agt_st: order_by
    agt_zip: order_by
    appointments_aggregate: appointments_aggregate_order_by
    area_of_damage: order_by
    asgn_date: order_by
    asgn_no: order_by
    asgn_type: order_by
    available_jobs_aggregate: available_jobs_aggregate_order_by
    bodyshop: bodyshops_order_by
    cat_no: order_by
    category: order_by
    cccontracts_aggregate: cccontracts_aggregate_order_by
    cieca_stl: order_by
    cieca_ttl: order_by
    ciecaid: order_by
    class: order_by
    clm_addr1: order_by
    clm_addr2: order_by
    clm_city: order_by
    clm_ct_fn: order_by
    clm_ct_ln: order_by
    clm_ct_ph: order_by
    clm_ct_phx: order_by
    clm_ctry: order_by
    clm_ea: order_by
    clm_fax: order_by
    clm_faxx: order_by
    clm_no: order_by
    clm_ofc_id: order_by
    clm_ofc_nm: order_by
    clm_ph1: order_by
    clm_ph1x: order_by
    clm_ph2: order_by
    clm_ph2x: order_by
    clm_st: order_by
    clm_title: order_by
    clm_total: order_by
    clm_zip: order_by
    converted: order_by
    created_at: order_by
    csiinvites_aggregate: csi_aggregate_order_by
    csr: order_by
    cust_pr: order_by
    date_closed: order_by
    date_estimated: order_by
    date_exported: order_by
    date_invoiced: order_by
    date_open: order_by
    date_scheduled: order_by
    ded_amt: order_by
    ded_status: order_by
    deliverchecklist: order_by
    depreciation_taxes: order_by
    documents_aggregate: documents_aggregate_order_by
    employee_body: order_by
    employee_body_rel: employees_order_by
    employee_prep: order_by
    employee_prep_rel: employees_order_by
    employee_refinish: order_by
    employee_refinish_rel: employees_order_by
    est_addr1: order_by
    est_addr2: order_by
    est_city: order_by
    est_co_nm: order_by
    est_ct_fn: order_by
    est_ct_ln: order_by
    est_ctry: order_by
    est_ea: order_by
    est_number: order_by
    est_ph1: order_by
    est_st: order_by
    est_zip: order_by
    federal_tax_payable: order_by
    federal_tax_rate: order_by
    g_bett_amt: order_by
    id: order_by
    inproduction: order_by
    ins_addr1: order_by
    ins_addr2: order_by
    ins_city: order_by
    ins_co_id: order_by
    ins_co_nm: order_by
    ins_ct_fn: order_by
    ins_ct_ln: order_by
    ins_ct_ph: order_by
    ins_ct_phx: order_by
    ins_ctry: order_by
    ins_ea: order_by
    ins_fax: order_by
    ins_faxx: order_by
    ins_memo: order_by
    ins_ph1: order_by
    ins_ph1x: order_by
    ins_ph2: order_by
    ins_ph2x: order_by
    ins_st: order_by
    ins_title: order_by
    ins_zip: order_by
    insd_addr1: order_by
    insd_addr2: order_by
    insd_city: order_by
    insd_co_nm: order_by
    insd_ctry: order_by
    insd_ea: order_by
    insd_fax: order_by
    insd_faxx: order_by
    insd_fn: order_by
    insd_ln: order_by
    insd_ph1: order_by
    insd_ph1x: order_by
    insd_ph2: order_by
    insd_ph2x: order_by
    insd_st: order_by
    insd_title: order_by
    insd_zip: order_by
    intakechecklist: order_by
    invoice: invoices_order_by
    invoice_allocation: order_by
    invoice_date: order_by
    invoices_aggregate: invoices_aggregate_order_by
    job_conversations_aggregate: job_conversations_aggregate_order_by
    job_totals: order_by
    joblines_aggregate: joblines_aggregate_order_by
    joblines_status_aggregate: joblines_status_aggregate_order_by
    kanbanparent: order_by
    kmin: order_by
    kmout: order_by
    labor_rate_desc: order_by
    labor_rate_id: order_by
    local_tax_rate: order_by
    loss_cat: order_by
    loss_date: order_by
    loss_desc: order_by
    loss_type: order_by
    notes_aggregate: notes_aggregate_order_by
    other_amount_payable: order_by
    owner: owners_order_by
    owner_owing: order_by
    ownerid: order_by
    ownr_addr1: order_by
    ownr_addr2: order_by
    ownr_city: order_by
    ownr_co_nm: order_by
    ownr_ctry: order_by
    ownr_ea: order_by
    ownr_fax: order_by
    ownr_faxx: order_by
    ownr_fn: order_by
    ownr_ln: order_by
    ownr_ph1: order_by
    ownr_ph1x: order_by
    ownr_ph2: order_by
    ownr_ph2x: order_by
    ownr_st: order_by
    ownr_title: order_by
    ownr_zip: order_by
    parts_orders_aggregate: parts_orders_aggregate_order_by
    parts_tax_rates: order_by
    pay_amt: order_by
    pay_chknm: order_by
    pay_date: order_by
    pay_type: order_by
    payee_nms: order_by
    payments_aggregate: payments_aggregate_order_by
    plate_no: order_by
    plate_st: order_by
    po_number: order_by
    policy_no: order_by
    production_vars: order_by
    rate_atp: order_by
    rate_la1: order_by
    rate_la2: order_by
    rate_la3: order_by
    rate_la4: order_by
    rate_laa: order_by
    rate_lab: order_by
    rate_lad: order_by
    rate_lae: order_by
    rate_laf: order_by
    rate_lag: order_by
    rate_lam: order_by
    rate_lar: order_by
    rate_las: order_by
    rate_lau: order_by
    rate_ma2s: order_by
    rate_ma2t: order_by
    rate_ma3s: order_by
    rate_mabl: order_by
    rate_macs: order_by
    rate_mahw: order_by
    rate_mapa: order_by
    rate_mash: order_by
    rate_matd: order_by
    referral_source: order_by
    regie_number: order_by
    ro_number: order_by
    scheduled_completion: order_by
    scheduled_delivery: order_by
    scheduled_in: order_by
    scoreboards_aggregate: scoreboard_aggregate_order_by
    selling_dealer: order_by
    selling_dealer_contact: order_by
    servicing_dealer: order_by
    servicing_dealer_contact: order_by
    shopid: order_by
    special_coverage_policy: order_by
    state_tax_rate: order_by
    status: order_by
    storage_payable: order_by
    tax_lbr_rt: order_by
    tax_levies_rt: order_by
    tax_paint_mat_rt: order_by
    tax_predis: order_by
    tax_prethr: order_by
    tax_pstthr: order_by
    tax_registration_number: order_by
    tax_str_rt: order_by
    tax_sub_rt: order_by
    tax_thramt: order_by
    tax_tow_rt: order_by
    theft_ind: order_by
    timetickets_aggregate: timetickets_aggregate_order_by
    tlos_ind: order_by
    towing_payable: order_by
    unit_number: order_by
    updated_at: order_by
    v_color: order_by
    v_make_desc: order_by
    v_model_desc: order_by
    v_model_yr: order_by
    v_vin: order_by
    vehicle: vehicles_order_by
    vehicleid: order_by
  }

  # primary key columns input for table: "jobs"
  input jobs_pk_columns_input {
    id: uuid!
  }

  # prepend existing jsonb value of filtered columns with new jsonb value
  input jobs_prepend_input {
    area_of_damage: jsonb
    cieca_stl: jsonb
    cieca_ttl: jsonb
    deliverchecklist: jsonb
    intakechecklist: jsonb
    invoice_allocation: jsonb
    job_totals: jsonb
    parts_tax_rates: jsonb
    production_vars: jsonb
  }

  # select columns of table "jobs"
  enum jobs_select_column {
    # column name
    actual_completion

    # column name
    actual_delivery

    # column name
    actual_in

    # column name
    adj_g_disc

    # column name
    adj_strdis

    # column name
    adj_towdis

    # column name
    adjustment_bottom_line

    # column name
    agt_addr1

    # column name
    agt_addr2

    # column name
    agt_city

    # column name
    agt_co_id

    # column name
    agt_co_nm

    # column name
    agt_ct_fn

    # column name
    agt_ct_ln

    # column name
    agt_ct_ph

    # column name
    agt_ct_phx

    # column name
    agt_ctry

    # column name
    agt_ea

    # column name
    agt_fax

    # column name
    agt_faxx

    # column name
    agt_lic_no

    # column name
    agt_ph1

    # column name
    agt_ph1x

    # column name
    agt_ph2

    # column name
    agt_ph2x

    # column name
    agt_st

    # column name
    agt_zip

    # column name
    area_of_damage

    # column name
    asgn_date

    # column name
    asgn_no

    # column name
    asgn_type

    # column name
    cat_no

    # column name
    category

    # column name
    cieca_stl

    # column name
    cieca_ttl

    # column name
    ciecaid

    # column name
    class

    # column name
    clm_addr1

    # column name
    clm_addr2

    # column name
    clm_city

    # column name
    clm_ct_fn

    # column name
    clm_ct_ln

    # column name
    clm_ct_ph

    # column name
    clm_ct_phx

    # column name
    clm_ctry

    # column name
    clm_ea

    # column name
    clm_fax

    # column name
    clm_faxx

    # column name
    clm_no

    # column name
    clm_ofc_id

    # column name
    clm_ofc_nm

    # column name
    clm_ph1

    # column name
    clm_ph1x

    # column name
    clm_ph2

    # column name
    clm_ph2x

    # column name
    clm_st

    # column name
    clm_title

    # column name
    clm_total

    # column name
    clm_zip

    # column name
    converted

    # column name
    created_at

    # column name
    csr

    # column name
    cust_pr

    # column name
    date_closed

    # column name
    date_estimated

    # column name
    date_exported

    # column name
    date_invoiced

    # column name
    date_open

    # column name
    date_scheduled

    # column name
    ded_amt

    # column name
    ded_status

    # column name
    deliverchecklist

    # column name
    depreciation_taxes

    # column name
    employee_body

    # column name
    employee_prep

    # column name
    employee_refinish

    # column name
    est_addr1

    # column name
    est_addr2

    # column name
    est_city

    # column name
    est_co_nm

    # column name
    est_ct_fn

    # column name
    est_ct_ln

    # column name
    est_ctry

    # column name
    est_ea

    # column name
    est_number

    # column name
    est_ph1

    # column name
    est_st

    # column name
    est_zip

    # column name
    federal_tax_payable

    # column name
    federal_tax_rate

    # column name
    g_bett_amt

    # column name
    id

    # column name
    inproduction

    # column name
    ins_addr1

    # column name
    ins_addr2

    # column name
    ins_city

    # column name
    ins_co_id

    # column name
    ins_co_nm

    # column name
    ins_ct_fn

    # column name
    ins_ct_ln

    # column name
    ins_ct_ph

    # column name
    ins_ct_phx

    # column name
    ins_ctry

    # column name
    ins_ea

    # column name
    ins_fax

    # column name
    ins_faxx

    # column name
    ins_memo

    # column name
    ins_ph1

    # column name
    ins_ph1x

    # column name
    ins_ph2

    # column name
    ins_ph2x

    # column name
    ins_st

    # column name
    ins_title

    # column name
    ins_zip

    # column name
    insd_addr1

    # column name
    insd_addr2

    # column name
    insd_city

    # column name
    insd_co_nm

    # column name
    insd_ctry

    # column name
    insd_ea

    # column name
    insd_fax

    # column name
    insd_faxx

    # column name
    insd_fn

    # column name
    insd_ln

    # column name
    insd_ph1

    # column name
    insd_ph1x

    # column name
    insd_ph2

    # column name
    insd_ph2x

    # column name
    insd_st

    # column name
    insd_title

    # column name
    insd_zip

    # column name
    intakechecklist

    # column name
    invoice_allocation

    # column name
    invoice_date

    # column name
    job_totals

    # column name
    kanbanparent

    # column name
    kmin

    # column name
    kmout

    # column name
    labor_rate_desc

    # column name
    labor_rate_id

    # column name
    local_tax_rate

    # column name
    loss_cat

    # column name
    loss_date

    # column name
    loss_desc

    # column name
    loss_type

    # column name
    other_amount_payable

    # column name
    owner_owing

    # column name
    ownerid

    # column name
    ownr_addr1

    # column name
    ownr_addr2

    # column name
    ownr_city

    # column name
    ownr_co_nm

    # column name
    ownr_ctry

    # column name
    ownr_ea

    # column name
    ownr_fax

    # column name
    ownr_faxx

    # column name
    ownr_fn

    # column name
    ownr_ln

    # column name
    ownr_ph1

    # column name
    ownr_ph1x

    # column name
    ownr_ph2

    # column name
    ownr_ph2x

    # column name
    ownr_st

    # column name
    ownr_title

    # column name
    ownr_zip

    # column name
    parts_tax_rates

    # column name
    pay_amt

    # column name
    pay_chknm

    # column name
    pay_date

    # column name
    pay_type

    # column name
    payee_nms

    # column name
    plate_no

    # column name
    plate_st

    # column name
    po_number

    # column name
    policy_no

    # column name
    production_vars

    # column name
    rate_atp

    # column name
    rate_la1

    # column name
    rate_la2

    # column name
    rate_la3

    # column name
    rate_la4

    # column name
    rate_laa

    # column name
    rate_lab

    # column name
    rate_lad

    # column name
    rate_lae

    # column name
    rate_laf

    # column name
    rate_lag

    # column name
    rate_lam

    # column name
    rate_lar

    # column name
    rate_las

    # column name
    rate_lau

    # column name
    rate_ma2s

    # column name
    rate_ma2t

    # column name
    rate_ma3s

    # column name
    rate_mabl

    # column name
    rate_macs

    # column name
    rate_mahw

    # column name
    rate_mapa

    # column name
    rate_mash

    # column name
    rate_matd

    # column name
    referral_source

    # column name
    regie_number

    # column name
    ro_number

    # column name
    scheduled_completion

    # column name
    scheduled_delivery

    # column name
    scheduled_in

    # column name
    selling_dealer

    # column name
    selling_dealer_contact

    # column name
    servicing_dealer

    # column name
    servicing_dealer_contact

    # column name
    shopid

    # column name
    special_coverage_policy

    # column name
    state_tax_rate

    # column name
    status

    # column name
    storage_payable

    # column name
    tax_lbr_rt

    # column name
    tax_levies_rt

    # column name
    tax_paint_mat_rt

    # column name
    tax_predis

    # column name
    tax_prethr

    # column name
    tax_pstthr

    # column name
    tax_registration_number

    # column name
    tax_str_rt

    # column name
    tax_sub_rt

    # column name
    tax_thramt

    # column name
    tax_tow_rt

    # column name
    theft_ind

    # column name
    tlos_ind

    # column name
    towing_payable

    # column name
    unit_number

    # column name
    updated_at

    # column name
    v_color

    # column name
    v_make_desc

    # column name
    v_model_desc

    # column name
    v_model_yr

    # column name
    v_vin

    # column name
    vehicleid
  }

  # input type for updating data in table "jobs"
  input jobs_set_input {
    actual_completion: timestamptz
    actual_delivery: timestamptz
    actual_in: timestamptz
    adj_g_disc: numeric
    adj_strdis: numeric
    adj_towdis: numeric
    adjustment_bottom_line: numeric
    agt_addr1: String
    agt_addr2: String
    agt_city: String
    agt_co_id: String
    agt_co_nm: String
    agt_ct_fn: String
    agt_ct_ln: String
    agt_ct_ph: String
    agt_ct_phx: String
    agt_ctry: String
    agt_ea: String
    agt_fax: String
    agt_faxx: String
    agt_lic_no: String
    agt_ph1: String
    agt_ph1x: String
    agt_ph2: String
    agt_ph2x: String
    agt_st: String
    agt_zip: String
    area_of_damage: jsonb
    asgn_date: date
    asgn_no: String
    asgn_type: String
    cat_no: String
    category: String
    cieca_stl: jsonb
    cieca_ttl: jsonb
    ciecaid: String
    class: String
    clm_addr1: String
    clm_addr2: String
    clm_city: String
    clm_ct_fn: String
    clm_ct_ln: String
    clm_ct_ph: String
    clm_ct_phx: String
    clm_ctry: String
    clm_ea: String
    clm_fax: String
    clm_faxx: String
    clm_no: String
    clm_ofc_id: String
    clm_ofc_nm: String
    clm_ph1: String
    clm_ph1x: String
    clm_ph2: String
    clm_ph2x: String
    clm_st: String
    clm_title: String
    clm_total: numeric
    clm_zip: String
    converted: Boolean
    created_at: timestamptz
    csr: String
    cust_pr: String
    date_closed: timestamptz
    date_estimated: timestamptz
    date_exported: timestamptz
    date_invoiced: timestamptz
    date_open: timestamptz
    date_scheduled: timestamptz
    ded_amt: numeric
    ded_status: String
    deliverchecklist: jsonb
    depreciation_taxes: numeric
    employee_body: uuid
    employee_prep: uuid
    employee_refinish: uuid
    est_addr1: String
    est_addr2: String
    est_city: String
    est_co_nm: String
    est_ct_fn: String
    est_ct_ln: String
    est_ctry: String
    est_ea: String
    est_number: bigint
    est_ph1: String
    est_st: String
    est_zip: String
    federal_tax_payable: numeric
    federal_tax_rate: numeric
    g_bett_amt: numeric
    id: uuid
    inproduction: Boolean
    ins_addr1: String
    ins_addr2: String
    ins_city: String
    ins_co_id: String
    ins_co_nm: String
    ins_ct_fn: String
    ins_ct_ln: String
    ins_ct_ph: String
    ins_ct_phx: String
    ins_ctry: String
    ins_ea: String
    ins_fax: String
    ins_faxx: String
    ins_memo: String
    ins_ph1: String
    ins_ph1x: String
    ins_ph2: String
    ins_ph2x: String
    ins_st: String
    ins_title: String
    ins_zip: String
    insd_addr1: String
    insd_addr2: String
    insd_city: String
    insd_co_nm: String
    insd_ctry: String
    insd_ea: String
    insd_fax: String
    insd_faxx: String
    insd_fn: String
    insd_ln: String
    insd_ph1: String
    insd_ph1x: String
    insd_ph2: String
    insd_ph2x: String
    insd_st: String
    insd_title: String
    insd_zip: String
    intakechecklist: jsonb
    invoice_allocation: jsonb
    invoice_date: date
    job_totals: jsonb
    kanbanparent: String
    kmin: Int
    kmout: Int
    labor_rate_desc: String
    labor_rate_id: String
    local_tax_rate: numeric
    loss_cat: String
    loss_date: date
    loss_desc: String
    loss_type: String
    other_amount_payable: numeric
    owner_owing: numeric
    ownerid: uuid
    ownr_addr1: String
    ownr_addr2: String
    ownr_city: String
    ownr_co_nm: String
    ownr_ctry: String
    ownr_ea: String
    ownr_fax: String
    ownr_faxx: String
    ownr_fn: String
    ownr_ln: String
    ownr_ph1: String
    ownr_ph1x: String
    ownr_ph2: String
    ownr_ph2x: String
    ownr_st: String
    ownr_title: String
    ownr_zip: String
    parts_tax_rates: jsonb
    pay_amt: numeric
    pay_chknm: String
    pay_date: date
    pay_type: String
    payee_nms: String
    plate_no: String
    plate_st: String
    po_number: String
    policy_no: String
    production_vars: jsonb
    rate_atp: numeric
    rate_la1: numeric
    rate_la2: numeric
    rate_la3: numeric
    rate_la4: numeric
    rate_laa: numeric
    rate_lab: numeric
    rate_lad: numeric
    rate_lae: numeric
    rate_laf: numeric
    rate_lag: numeric
    rate_lam: numeric
    rate_lar: numeric
    rate_las: numeric
    rate_lau: numeric
    rate_ma2s: numeric
    rate_ma2t: numeric
    rate_ma3s: numeric
    rate_mabl: numeric
    rate_macs: numeric
    rate_mahw: numeric
    rate_mapa: numeric
    rate_mash: numeric
    rate_matd: numeric
    referral_source: String
    regie_number: String
    ro_number: String
    scheduled_completion: timestamptz
    scheduled_delivery: timestamptz
    scheduled_in: timestamptz
    selling_dealer: String
    selling_dealer_contact: String
    servicing_dealer: String
    servicing_dealer_contact: String
    shopid: uuid
    special_coverage_policy: Boolean
    state_tax_rate: numeric
    status: String
    storage_payable: numeric
    tax_lbr_rt: numeric
    tax_levies_rt: numeric
    tax_paint_mat_rt: numeric
    tax_predis: numeric
    tax_prethr: numeric
    tax_pstthr: numeric
    tax_registration_number: String
    tax_str_rt: numeric
    tax_sub_rt: numeric
    tax_thramt: numeric
    tax_tow_rt: numeric
    theft_ind: Boolean
    tlos_ind: Boolean
    towing_payable: numeric
    unit_number: String
    updated_at: timestamptz
    v_color: String
    v_make_desc: String
    v_model_desc: String
    v_model_yr: String
    v_vin: String
    vehicleid: uuid
  }

  # aggregate stddev on columns
  type jobs_stddev_fields {
    adj_g_disc: Float
    adj_strdis: Float
    adj_towdis: Float
    adjustment_bottom_line: Float
    clm_total: Float
    ded_amt: Float
    depreciation_taxes: Float
    est_number: Float
    federal_tax_payable: Float
    federal_tax_rate: Float
    g_bett_amt: Float
    kmin: Float
    kmout: Float
    local_tax_rate: Float
    other_amount_payable: Float
    owner_owing: Float
    pay_amt: Float
    rate_atp: Float
    rate_la1: Float
    rate_la2: Float
    rate_la3: Float
    rate_la4: Float
    rate_laa: Float
    rate_lab: Float
    rate_lad: Float
    rate_lae: Float
    rate_laf: Float
    rate_lag: Float
    rate_lam: Float
    rate_lar: Float
    rate_las: Float
    rate_lau: Float
    rate_ma2s: Float
    rate_ma2t: Float
    rate_ma3s: Float
    rate_mabl: Float
    rate_macs: Float
    rate_mahw: Float
    rate_mapa: Float
    rate_mash: Float
    rate_matd: Float
    state_tax_rate: Float
    storage_payable: Float
    tax_lbr_rt: Float
    tax_levies_rt: Float
    tax_paint_mat_rt: Float
    tax_predis: Float
    tax_prethr: Float
    tax_pstthr: Float
    tax_str_rt: Float
    tax_sub_rt: Float
    tax_thramt: Float
    tax_tow_rt: Float
    towing_payable: Float
  }

  # order by stddev() on columns of table "jobs"
  input jobs_stddev_order_by {
    adj_g_disc: order_by
    adj_strdis: order_by
    adj_towdis: order_by
    adjustment_bottom_line: order_by
    clm_total: order_by
    ded_amt: order_by
    depreciation_taxes: order_by
    est_number: order_by
    federal_tax_payable: order_by
    federal_tax_rate: order_by
    g_bett_amt: order_by
    kmin: order_by
    kmout: order_by
    local_tax_rate: order_by
    other_amount_payable: order_by
    owner_owing: order_by
    pay_amt: order_by
    rate_atp: order_by
    rate_la1: order_by
    rate_la2: order_by
    rate_la3: order_by
    rate_la4: order_by
    rate_laa: order_by
    rate_lab: order_by
    rate_lad: order_by
    rate_lae: order_by
    rate_laf: order_by
    rate_lag: order_by
    rate_lam: order_by
    rate_lar: order_by
    rate_las: order_by
    rate_lau: order_by
    rate_ma2s: order_by
    rate_ma2t: order_by
    rate_ma3s: order_by
    rate_mabl: order_by
    rate_macs: order_by
    rate_mahw: order_by
    rate_mapa: order_by
    rate_mash: order_by
    rate_matd: order_by
    state_tax_rate: order_by
    storage_payable: order_by
    tax_lbr_rt: order_by
    tax_levies_rt: order_by
    tax_paint_mat_rt: order_by
    tax_predis: order_by
    tax_prethr: order_by
    tax_pstthr: order_by
    tax_str_rt: order_by
    tax_sub_rt: order_by
    tax_thramt: order_by
    tax_tow_rt: order_by
    towing_payable: order_by
  }

  # aggregate stddev_pop on columns
  type jobs_stddev_pop_fields {
    adj_g_disc: Float
    adj_strdis: Float
    adj_towdis: Float
    adjustment_bottom_line: Float
    clm_total: Float
    ded_amt: Float
    depreciation_taxes: Float
    est_number: Float
    federal_tax_payable: Float
    federal_tax_rate: Float
    g_bett_amt: Float
    kmin: Float
    kmout: Float
    local_tax_rate: Float
    other_amount_payable: Float
    owner_owing: Float
    pay_amt: Float
    rate_atp: Float
    rate_la1: Float
    rate_la2: Float
    rate_la3: Float
    rate_la4: Float
    rate_laa: Float
    rate_lab: Float
    rate_lad: Float
    rate_lae: Float
    rate_laf: Float
    rate_lag: Float
    rate_lam: Float
    rate_lar: Float
    rate_las: Float
    rate_lau: Float
    rate_ma2s: Float
    rate_ma2t: Float
    rate_ma3s: Float
    rate_mabl: Float
    rate_macs: Float
    rate_mahw: Float
    rate_mapa: Float
    rate_mash: Float
    rate_matd: Float
    state_tax_rate: Float
    storage_payable: Float
    tax_lbr_rt: Float
    tax_levies_rt: Float
    tax_paint_mat_rt: Float
    tax_predis: Float
    tax_prethr: Float
    tax_pstthr: Float
    tax_str_rt: Float
    tax_sub_rt: Float
    tax_thramt: Float
    tax_tow_rt: Float
    towing_payable: Float
  }

  # order by stddev_pop() on columns of table "jobs"
  input jobs_stddev_pop_order_by {
    adj_g_disc: order_by
    adj_strdis: order_by
    adj_towdis: order_by
    adjustment_bottom_line: order_by
    clm_total: order_by
    ded_amt: order_by
    depreciation_taxes: order_by
    est_number: order_by
    federal_tax_payable: order_by
    federal_tax_rate: order_by
    g_bett_amt: order_by
    kmin: order_by
    kmout: order_by
    local_tax_rate: order_by
    other_amount_payable: order_by
    owner_owing: order_by
    pay_amt: order_by
    rate_atp: order_by
    rate_la1: order_by
    rate_la2: order_by
    rate_la3: order_by
    rate_la4: order_by
    rate_laa: order_by
    rate_lab: order_by
    rate_lad: order_by
    rate_lae: order_by
    rate_laf: order_by
    rate_lag: order_by
    rate_lam: order_by
    rate_lar: order_by
    rate_las: order_by
    rate_lau: order_by
    rate_ma2s: order_by
    rate_ma2t: order_by
    rate_ma3s: order_by
    rate_mabl: order_by
    rate_macs: order_by
    rate_mahw: order_by
    rate_mapa: order_by
    rate_mash: order_by
    rate_matd: order_by
    state_tax_rate: order_by
    storage_payable: order_by
    tax_lbr_rt: order_by
    tax_levies_rt: order_by
    tax_paint_mat_rt: order_by
    tax_predis: order_by
    tax_prethr: order_by
    tax_pstthr: order_by
    tax_str_rt: order_by
    tax_sub_rt: order_by
    tax_thramt: order_by
    tax_tow_rt: order_by
    towing_payable: order_by
  }

  # aggregate stddev_samp on columns
  type jobs_stddev_samp_fields {
    adj_g_disc: Float
    adj_strdis: Float
    adj_towdis: Float
    adjustment_bottom_line: Float
    clm_total: Float
    ded_amt: Float
    depreciation_taxes: Float
    est_number: Float
    federal_tax_payable: Float
    federal_tax_rate: Float
    g_bett_amt: Float
    kmin: Float
    kmout: Float
    local_tax_rate: Float
    other_amount_payable: Float
    owner_owing: Float
    pay_amt: Float
    rate_atp: Float
    rate_la1: Float
    rate_la2: Float
    rate_la3: Float
    rate_la4: Float
    rate_laa: Float
    rate_lab: Float
    rate_lad: Float
    rate_lae: Float
    rate_laf: Float
    rate_lag: Float
    rate_lam: Float
    rate_lar: Float
    rate_las: Float
    rate_lau: Float
    rate_ma2s: Float
    rate_ma2t: Float
    rate_ma3s: Float
    rate_mabl: Float
    rate_macs: Float
    rate_mahw: Float
    rate_mapa: Float
    rate_mash: Float
    rate_matd: Float
    state_tax_rate: Float
    storage_payable: Float
    tax_lbr_rt: Float
    tax_levies_rt: Float
    tax_paint_mat_rt: Float
    tax_predis: Float
    tax_prethr: Float
    tax_pstthr: Float
    tax_str_rt: Float
    tax_sub_rt: Float
    tax_thramt: Float
    tax_tow_rt: Float
    towing_payable: Float
  }

  # order by stddev_samp() on columns of table "jobs"
  input jobs_stddev_samp_order_by {
    adj_g_disc: order_by
    adj_strdis: order_by
    adj_towdis: order_by
    adjustment_bottom_line: order_by
    clm_total: order_by
    ded_amt: order_by
    depreciation_taxes: order_by
    est_number: order_by
    federal_tax_payable: order_by
    federal_tax_rate: order_by
    g_bett_amt: order_by
    kmin: order_by
    kmout: order_by
    local_tax_rate: order_by
    other_amount_payable: order_by
    owner_owing: order_by
    pay_amt: order_by
    rate_atp: order_by
    rate_la1: order_by
    rate_la2: order_by
    rate_la3: order_by
    rate_la4: order_by
    rate_laa: order_by
    rate_lab: order_by
    rate_lad: order_by
    rate_lae: order_by
    rate_laf: order_by
    rate_lag: order_by
    rate_lam: order_by
    rate_lar: order_by
    rate_las: order_by
    rate_lau: order_by
    rate_ma2s: order_by
    rate_ma2t: order_by
    rate_ma3s: order_by
    rate_mabl: order_by
    rate_macs: order_by
    rate_mahw: order_by
    rate_mapa: order_by
    rate_mash: order_by
    rate_matd: order_by
    state_tax_rate: order_by
    storage_payable: order_by
    tax_lbr_rt: order_by
    tax_levies_rt: order_by
    tax_paint_mat_rt: order_by
    tax_predis: order_by
    tax_prethr: order_by
    tax_pstthr: order_by
    tax_str_rt: order_by
    tax_sub_rt: order_by
    tax_thramt: order_by
    tax_tow_rt: order_by
    towing_payable: order_by
  }

  # aggregate sum on columns
  type jobs_sum_fields {
    adj_g_disc: numeric
    adj_strdis: numeric
    adj_towdis: numeric
    adjustment_bottom_line: numeric
    clm_total: numeric
    ded_amt: numeric
    depreciation_taxes: numeric
    est_number: bigint
    federal_tax_payable: numeric
    federal_tax_rate: numeric
    g_bett_amt: numeric
    kmin: Int
    kmout: Int
    local_tax_rate: numeric
    other_amount_payable: numeric
    owner_owing: numeric
    pay_amt: numeric
    rate_atp: numeric
    rate_la1: numeric
    rate_la2: numeric
    rate_la3: numeric
    rate_la4: numeric
    rate_laa: numeric
    rate_lab: numeric
    rate_lad: numeric
    rate_lae: numeric
    rate_laf: numeric
    rate_lag: numeric
    rate_lam: numeric
    rate_lar: numeric
    rate_las: numeric
    rate_lau: numeric
    rate_ma2s: numeric
    rate_ma2t: numeric
    rate_ma3s: numeric
    rate_mabl: numeric
    rate_macs: numeric
    rate_mahw: numeric
    rate_mapa: numeric
    rate_mash: numeric
    rate_matd: numeric
    state_tax_rate: numeric
    storage_payable: numeric
    tax_lbr_rt: numeric
    tax_levies_rt: numeric
    tax_paint_mat_rt: numeric
    tax_predis: numeric
    tax_prethr: numeric
    tax_pstthr: numeric
    tax_str_rt: numeric
    tax_sub_rt: numeric
    tax_thramt: numeric
    tax_tow_rt: numeric
    towing_payable: numeric
  }

  # order by sum() on columns of table "jobs"
  input jobs_sum_order_by {
    adj_g_disc: order_by
    adj_strdis: order_by
    adj_towdis: order_by
    adjustment_bottom_line: order_by
    clm_total: order_by
    ded_amt: order_by
    depreciation_taxes: order_by
    est_number: order_by
    federal_tax_payable: order_by
    federal_tax_rate: order_by
    g_bett_amt: order_by
    kmin: order_by
    kmout: order_by
    local_tax_rate: order_by
    other_amount_payable: order_by
    owner_owing: order_by
    pay_amt: order_by
    rate_atp: order_by
    rate_la1: order_by
    rate_la2: order_by
    rate_la3: order_by
    rate_la4: order_by
    rate_laa: order_by
    rate_lab: order_by
    rate_lad: order_by
    rate_lae: order_by
    rate_laf: order_by
    rate_lag: order_by
    rate_lam: order_by
    rate_lar: order_by
    rate_las: order_by
    rate_lau: order_by
    rate_ma2s: order_by
    rate_ma2t: order_by
    rate_ma3s: order_by
    rate_mabl: order_by
    rate_macs: order_by
    rate_mahw: order_by
    rate_mapa: order_by
    rate_mash: order_by
    rate_matd: order_by
    state_tax_rate: order_by
    storage_payable: order_by
    tax_lbr_rt: order_by
    tax_levies_rt: order_by
    tax_paint_mat_rt: order_by
    tax_predis: order_by
    tax_prethr: order_by
    tax_pstthr: order_by
    tax_str_rt: order_by
    tax_sub_rt: order_by
    tax_thramt: order_by
    tax_tow_rt: order_by
    towing_payable: order_by
  }

  # update columns of table "jobs"
  enum jobs_update_column {
    # column name
    actual_completion

    # column name
    actual_delivery

    # column name
    actual_in

    # column name
    adj_g_disc

    # column name
    adj_strdis

    # column name
    adj_towdis

    # column name
    adjustment_bottom_line

    # column name
    agt_addr1

    # column name
    agt_addr2

    # column name
    agt_city

    # column name
    agt_co_id

    # column name
    agt_co_nm

    # column name
    agt_ct_fn

    # column name
    agt_ct_ln

    # column name
    agt_ct_ph

    # column name
    agt_ct_phx

    # column name
    agt_ctry

    # column name
    agt_ea

    # column name
    agt_fax

    # column name
    agt_faxx

    # column name
    agt_lic_no

    # column name
    agt_ph1

    # column name
    agt_ph1x

    # column name
    agt_ph2

    # column name
    agt_ph2x

    # column name
    agt_st

    # column name
    agt_zip

    # column name
    area_of_damage

    # column name
    asgn_date

    # column name
    asgn_no

    # column name
    asgn_type

    # column name
    cat_no

    # column name
    category

    # column name
    cieca_stl

    # column name
    cieca_ttl

    # column name
    ciecaid

    # column name
    class

    # column name
    clm_addr1

    # column name
    clm_addr2

    # column name
    clm_city

    # column name
    clm_ct_fn

    # column name
    clm_ct_ln

    # column name
    clm_ct_ph

    # column name
    clm_ct_phx

    # column name
    clm_ctry

    # column name
    clm_ea

    # column name
    clm_fax

    # column name
    clm_faxx

    # column name
    clm_no

    # column name
    clm_ofc_id

    # column name
    clm_ofc_nm

    # column name
    clm_ph1

    # column name
    clm_ph1x

    # column name
    clm_ph2

    # column name
    clm_ph2x

    # column name
    clm_st

    # column name
    clm_title

    # column name
    clm_total

    # column name
    clm_zip

    # column name
    converted

    # column name
    created_at

    # column name
    csr

    # column name
    cust_pr

    # column name
    date_closed

    # column name
    date_estimated

    # column name
    date_exported

    # column name
    date_invoiced

    # column name
    date_open

    # column name
    date_scheduled

    # column name
    ded_amt

    # column name
    ded_status

    # column name
    deliverchecklist

    # column name
    depreciation_taxes

    # column name
    employee_body

    # column name
    employee_prep

    # column name
    employee_refinish

    # column name
    est_addr1

    # column name
    est_addr2

    # column name
    est_city

    # column name
    est_co_nm

    # column name
    est_ct_fn

    # column name
    est_ct_ln

    # column name
    est_ctry

    # column name
    est_ea

    # column name
    est_number

    # column name
    est_ph1

    # column name
    est_st

    # column name
    est_zip

    # column name
    federal_tax_payable

    # column name
    federal_tax_rate

    # column name
    g_bett_amt

    # column name
    id

    # column name
    inproduction

    # column name
    ins_addr1

    # column name
    ins_addr2

    # column name
    ins_city

    # column name
    ins_co_id

    # column name
    ins_co_nm

    # column name
    ins_ct_fn

    # column name
    ins_ct_ln

    # column name
    ins_ct_ph

    # column name
    ins_ct_phx

    # column name
    ins_ctry

    # column name
    ins_ea

    # column name
    ins_fax

    # column name
    ins_faxx

    # column name
    ins_memo

    # column name
    ins_ph1

    # column name
    ins_ph1x

    # column name
    ins_ph2

    # column name
    ins_ph2x

    # column name
    ins_st

    # column name
    ins_title

    # column name
    ins_zip

    # column name
    insd_addr1

    # column name
    insd_addr2

    # column name
    insd_city

    # column name
    insd_co_nm

    # column name
    insd_ctry

    # column name
    insd_ea

    # column name
    insd_fax

    # column name
    insd_faxx

    # column name
    insd_fn

    # column name
    insd_ln

    # column name
    insd_ph1

    # column name
    insd_ph1x

    # column name
    insd_ph2

    # column name
    insd_ph2x

    # column name
    insd_st

    # column name
    insd_title

    # column name
    insd_zip

    # column name
    intakechecklist

    # column name
    invoice_allocation

    # column name
    invoice_date

    # column name
    job_totals

    # column name
    kanbanparent

    # column name
    kmin

    # column name
    kmout

    # column name
    labor_rate_desc

    # column name
    labor_rate_id

    # column name
    local_tax_rate

    # column name
    loss_cat

    # column name
    loss_date

    # column name
    loss_desc

    # column name
    loss_type

    # column name
    other_amount_payable

    # column name
    owner_owing

    # column name
    ownerid

    # column name
    ownr_addr1

    # column name
    ownr_addr2

    # column name
    ownr_city

    # column name
    ownr_co_nm

    # column name
    ownr_ctry

    # column name
    ownr_ea

    # column name
    ownr_fax

    # column name
    ownr_faxx

    # column name
    ownr_fn

    # column name
    ownr_ln

    # column name
    ownr_ph1

    # column name
    ownr_ph1x

    # column name
    ownr_ph2

    # column name
    ownr_ph2x

    # column name
    ownr_st

    # column name
    ownr_title

    # column name
    ownr_zip

    # column name
    parts_tax_rates

    # column name
    pay_amt

    # column name
    pay_chknm

    # column name
    pay_date

    # column name
    pay_type

    # column name
    payee_nms

    # column name
    plate_no

    # column name
    plate_st

    # column name
    po_number

    # column name
    policy_no

    # column name
    production_vars

    # column name
    rate_atp

    # column name
    rate_la1

    # column name
    rate_la2

    # column name
    rate_la3

    # column name
    rate_la4

    # column name
    rate_laa

    # column name
    rate_lab

    # column name
    rate_lad

    # column name
    rate_lae

    # column name
    rate_laf

    # column name
    rate_lag

    # column name
    rate_lam

    # column name
    rate_lar

    # column name
    rate_las

    # column name
    rate_lau

    # column name
    rate_ma2s

    # column name
    rate_ma2t

    # column name
    rate_ma3s

    # column name
    rate_mabl

    # column name
    rate_macs

    # column name
    rate_mahw

    # column name
    rate_mapa

    # column name
    rate_mash

    # column name
    rate_matd

    # column name
    referral_source

    # column name
    regie_number

    # column name
    ro_number

    # column name
    scheduled_completion

    # column name
    scheduled_delivery

    # column name
    scheduled_in

    # column name
    selling_dealer

    # column name
    selling_dealer_contact

    # column name
    servicing_dealer

    # column name
    servicing_dealer_contact

    # column name
    shopid

    # column name
    special_coverage_policy

    # column name
    state_tax_rate

    # column name
    status

    # column name
    storage_payable

    # column name
    tax_lbr_rt

    # column name
    tax_levies_rt

    # column name
    tax_paint_mat_rt

    # column name
    tax_predis

    # column name
    tax_prethr

    # column name
    tax_pstthr

    # column name
    tax_registration_number

    # column name
    tax_str_rt

    # column name
    tax_sub_rt

    # column name
    tax_thramt

    # column name
    tax_tow_rt

    # column name
    theft_ind

    # column name
    tlos_ind

    # column name
    towing_payable

    # column name
    unit_number

    # column name
    updated_at

    # column name
    v_color

    # column name
    v_make_desc

    # column name
    v_model_desc

    # column name
    v_model_yr

    # column name
    v_vin

    # column name
    vehicleid
  }

  # aggregate var_pop on columns
  type jobs_var_pop_fields {
    adj_g_disc: Float
    adj_strdis: Float
    adj_towdis: Float
    adjustment_bottom_line: Float
    clm_total: Float
    ded_amt: Float
    depreciation_taxes: Float
    est_number: Float
    federal_tax_payable: Float
    federal_tax_rate: Float
    g_bett_amt: Float
    kmin: Float
    kmout: Float
    local_tax_rate: Float
    other_amount_payable: Float
    owner_owing: Float
    pay_amt: Float
    rate_atp: Float
    rate_la1: Float
    rate_la2: Float
    rate_la3: Float
    rate_la4: Float
    rate_laa: Float
    rate_lab: Float
    rate_lad: Float
    rate_lae: Float
    rate_laf: Float
    rate_lag: Float
    rate_lam: Float
    rate_lar: Float
    rate_las: Float
    rate_lau: Float
    rate_ma2s: Float
    rate_ma2t: Float
    rate_ma3s: Float
    rate_mabl: Float
    rate_macs: Float
    rate_mahw: Float
    rate_mapa: Float
    rate_mash: Float
    rate_matd: Float
    state_tax_rate: Float
    storage_payable: Float
    tax_lbr_rt: Float
    tax_levies_rt: Float
    tax_paint_mat_rt: Float
    tax_predis: Float
    tax_prethr: Float
    tax_pstthr: Float
    tax_str_rt: Float
    tax_sub_rt: Float
    tax_thramt: Float
    tax_tow_rt: Float
    towing_payable: Float
  }

  # order by var_pop() on columns of table "jobs"
  input jobs_var_pop_order_by {
    adj_g_disc: order_by
    adj_strdis: order_by
    adj_towdis: order_by
    adjustment_bottom_line: order_by
    clm_total: order_by
    ded_amt: order_by
    depreciation_taxes: order_by
    est_number: order_by
    federal_tax_payable: order_by
    federal_tax_rate: order_by
    g_bett_amt: order_by
    kmin: order_by
    kmout: order_by
    local_tax_rate: order_by
    other_amount_payable: order_by
    owner_owing: order_by
    pay_amt: order_by
    rate_atp: order_by
    rate_la1: order_by
    rate_la2: order_by
    rate_la3: order_by
    rate_la4: order_by
    rate_laa: order_by
    rate_lab: order_by
    rate_lad: order_by
    rate_lae: order_by
    rate_laf: order_by
    rate_lag: order_by
    rate_lam: order_by
    rate_lar: order_by
    rate_las: order_by
    rate_lau: order_by
    rate_ma2s: order_by
    rate_ma2t: order_by
    rate_ma3s: order_by
    rate_mabl: order_by
    rate_macs: order_by
    rate_mahw: order_by
    rate_mapa: order_by
    rate_mash: order_by
    rate_matd: order_by
    state_tax_rate: order_by
    storage_payable: order_by
    tax_lbr_rt: order_by
    tax_levies_rt: order_by
    tax_paint_mat_rt: order_by
    tax_predis: order_by
    tax_prethr: order_by
    tax_pstthr: order_by
    tax_str_rt: order_by
    tax_sub_rt: order_by
    tax_thramt: order_by
    tax_tow_rt: order_by
    towing_payable: order_by
  }

  # aggregate var_samp on columns
  type jobs_var_samp_fields {
    adj_g_disc: Float
    adj_strdis: Float
    adj_towdis: Float
    adjustment_bottom_line: Float
    clm_total: Float
    ded_amt: Float
    depreciation_taxes: Float
    est_number: Float
    federal_tax_payable: Float
    federal_tax_rate: Float
    g_bett_amt: Float
    kmin: Float
    kmout: Float
    local_tax_rate: Float
    other_amount_payable: Float
    owner_owing: Float
    pay_amt: Float
    rate_atp: Float
    rate_la1: Float
    rate_la2: Float
    rate_la3: Float
    rate_la4: Float
    rate_laa: Float
    rate_lab: Float
    rate_lad: Float
    rate_lae: Float
    rate_laf: Float
    rate_lag: Float
    rate_lam: Float
    rate_lar: Float
    rate_las: Float
    rate_lau: Float
    rate_ma2s: Float
    rate_ma2t: Float
    rate_ma3s: Float
    rate_mabl: Float
    rate_macs: Float
    rate_mahw: Float
    rate_mapa: Float
    rate_mash: Float
    rate_matd: Float
    state_tax_rate: Float
    storage_payable: Float
    tax_lbr_rt: Float
    tax_levies_rt: Float
    tax_paint_mat_rt: Float
    tax_predis: Float
    tax_prethr: Float
    tax_pstthr: Float
    tax_str_rt: Float
    tax_sub_rt: Float
    tax_thramt: Float
    tax_tow_rt: Float
    towing_payable: Float
  }

  # order by var_samp() on columns of table "jobs"
  input jobs_var_samp_order_by {
    adj_g_disc: order_by
    adj_strdis: order_by
    adj_towdis: order_by
    adjustment_bottom_line: order_by
    clm_total: order_by
    ded_amt: order_by
    depreciation_taxes: order_by
    est_number: order_by
    federal_tax_payable: order_by
    federal_tax_rate: order_by
    g_bett_amt: order_by
    kmin: order_by
    kmout: order_by
    local_tax_rate: order_by
    other_amount_payable: order_by
    owner_owing: order_by
    pay_amt: order_by
    rate_atp: order_by
    rate_la1: order_by
    rate_la2: order_by
    rate_la3: order_by
    rate_la4: order_by
    rate_laa: order_by
    rate_lab: order_by
    rate_lad: order_by
    rate_lae: order_by
    rate_laf: order_by
    rate_lag: order_by
    rate_lam: order_by
    rate_lar: order_by
    rate_las: order_by
    rate_lau: order_by
    rate_ma2s: order_by
    rate_ma2t: order_by
    rate_ma3s: order_by
    rate_mabl: order_by
    rate_macs: order_by
    rate_mahw: order_by
    rate_mapa: order_by
    rate_mash: order_by
    rate_matd: order_by
    state_tax_rate: order_by
    storage_payable: order_by
    tax_lbr_rt: order_by
    tax_levies_rt: order_by
    tax_paint_mat_rt: order_by
    tax_predis: order_by
    tax_prethr: order_by
    tax_pstthr: order_by
    tax_str_rt: order_by
    tax_sub_rt: order_by
    tax_thramt: order_by
    tax_tow_rt: order_by
    towing_payable: order_by
  }

  # aggregate variance on columns
  type jobs_variance_fields {
    adj_g_disc: Float
    adj_strdis: Float
    adj_towdis: Float
    adjustment_bottom_line: Float
    clm_total: Float
    ded_amt: Float
    depreciation_taxes: Float
    est_number: Float
    federal_tax_payable: Float
    federal_tax_rate: Float
    g_bett_amt: Float
    kmin: Float
    kmout: Float
    local_tax_rate: Float
    other_amount_payable: Float
    owner_owing: Float
    pay_amt: Float
    rate_atp: Float
    rate_la1: Float
    rate_la2: Float
    rate_la3: Float
    rate_la4: Float
    rate_laa: Float
    rate_lab: Float
    rate_lad: Float
    rate_lae: Float
    rate_laf: Float
    rate_lag: Float
    rate_lam: Float
    rate_lar: Float
    rate_las: Float
    rate_lau: Float
    rate_ma2s: Float
    rate_ma2t: Float
    rate_ma3s: Float
    rate_mabl: Float
    rate_macs: Float
    rate_mahw: Float
    rate_mapa: Float
    rate_mash: Float
    rate_matd: Float
    state_tax_rate: Float
    storage_payable: Float
    tax_lbr_rt: Float
    tax_levies_rt: Float
    tax_paint_mat_rt: Float
    tax_predis: Float
    tax_prethr: Float
    tax_pstthr: Float
    tax_str_rt: Float
    tax_sub_rt: Float
    tax_thramt: Float
    tax_tow_rt: Float
    towing_payable: Float
  }

  # order by variance() on columns of table "jobs"
  input jobs_variance_order_by {
    adj_g_disc: order_by
    adj_strdis: order_by
    adj_towdis: order_by
    adjustment_bottom_line: order_by
    clm_total: order_by
    ded_amt: order_by
    depreciation_taxes: order_by
    est_number: order_by
    federal_tax_payable: order_by
    federal_tax_rate: order_by
    g_bett_amt: order_by
    kmin: order_by
    kmout: order_by
    local_tax_rate: order_by
    other_amount_payable: order_by
    owner_owing: order_by
    pay_amt: order_by
    rate_atp: order_by
    rate_la1: order_by
    rate_la2: order_by
    rate_la3: order_by
    rate_la4: order_by
    rate_laa: order_by
    rate_lab: order_by
    rate_lad: order_by
    rate_lae: order_by
    rate_laf: order_by
    rate_lag: order_by
    rate_lam: order_by
    rate_lar: order_by
    rate_las: order_by
    rate_lau: order_by
    rate_ma2s: order_by
    rate_ma2t: order_by
    rate_ma3s: order_by
    rate_mabl: order_by
    rate_macs: order_by
    rate_mahw: order_by
    rate_mapa: order_by
    rate_mash: order_by
    rate_matd: order_by
    state_tax_rate: order_by
    storage_payable: order_by
    tax_lbr_rt: order_by
    tax_levies_rt: order_by
    tax_paint_mat_rt: order_by
    tax_predis: order_by
    tax_prethr: order_by
    tax_pstthr: order_by
    tax_str_rt: order_by
    tax_sub_rt: order_by
    tax_thramt: order_by
    tax_tow_rt: order_by
    towing_payable: order_by
  }

  scalar json

  # expression to compare columns of type json. All fields are combined with logical 'AND'.
  input json_comparison_exp {
    _eq: json
    _gt: json
    _gte: json
    _in: [json!]
    _is_null: Boolean
    _lt: json
    _lte: json
    _neq: json
    _nin: [json!]
  }

  scalar jsonb

  # expression to compare columns of type jsonb. All fields are combined with logical 'AND'.
  input jsonb_comparison_exp {
    # is the column contained in the given json value
    _contained_in: jsonb

    # does the column contain the given json value at the top level
    _contains: jsonb
    _eq: jsonb
    _gt: jsonb
    _gte: jsonb

    # does the string exist as a top-level key in the column
    _has_key: String

    # do all of these strings exist as top-level keys in the column
    _has_keys_all: [String!]

    # do any of these strings exist as top-level keys in the column
    _has_keys_any: [String!]
    _in: [jsonb!]
    _is_null: Boolean
    _lt: jsonb
    _lte: jsonb
    _neq: jsonb
    _nin: [jsonb!]
  }

  # columns and relationships of "masterdata"
  type masterdata {
    key: String!
    value: String!
  }

  # aggregated selection of "masterdata"
  type masterdata_aggregate {
    aggregate: masterdata_aggregate_fields
    nodes: [masterdata!]!
  }

  # aggregate fields of "masterdata"
  type masterdata_aggregate_fields {
    count(columns: [masterdata_select_column!], distinct: Boolean): Int
    max: masterdata_max_fields
    min: masterdata_min_fields
  }

  # order by aggregate values of table "masterdata"
  input masterdata_aggregate_order_by {
    count: order_by
    max: masterdata_max_order_by
    min: masterdata_min_order_by
  }

  # input type for inserting array relation for remote table "masterdata"
  input masterdata_arr_rel_insert_input {
    data: [masterdata_insert_input!]!
    on_conflict: masterdata_on_conflict
  }

  # Boolean expression to filter rows from the table "masterdata". All fields are combined with a logical 'AND'.
  input masterdata_bool_exp {
    _and: [masterdata_bool_exp]
    _not: masterdata_bool_exp
    _or: [masterdata_bool_exp]
    key: String_comparison_exp
    value: String_comparison_exp
  }

  # unique or primary key constraints on table "masterdata"
  enum masterdata_constraint {
    # unique or primary key constraint
    masterdata_pkey
  }

  # input type for inserting data into table "masterdata"
  input masterdata_insert_input {
    key: String
    value: String
  }

  # aggregate max on columns
  type masterdata_max_fields {
    key: String
    value: String
  }

  # order by max() on columns of table "masterdata"
  input masterdata_max_order_by {
    key: order_by
    value: order_by
  }

  # aggregate min on columns
  type masterdata_min_fields {
    key: String
    value: String
  }

  # order by min() on columns of table "masterdata"
  input masterdata_min_order_by {
    key: order_by
    value: order_by
  }

  # response of any mutation on the table "masterdata"
  type masterdata_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [masterdata!]!
  }

  # input type for inserting object relation for remote table "masterdata"
  input masterdata_obj_rel_insert_input {
    data: masterdata_insert_input!
    on_conflict: masterdata_on_conflict
  }

  # on conflict condition type for table "masterdata"
  input masterdata_on_conflict {
    constraint: masterdata_constraint!
    update_columns: [masterdata_update_column!]!
    where: masterdata_bool_exp
  }

  # ordering options when selecting data from "masterdata"
  input masterdata_order_by {
    key: order_by
    value: order_by
  }

  # primary key columns input for table: "masterdata"
  input masterdata_pk_columns_input {
    key: String!
  }

  # select columns of table "masterdata"
  enum masterdata_select_column {
    # column name
    key

    # column name
    value
  }

  # input type for updating data in table "masterdata"
  input masterdata_set_input {
    key: String
    value: String
  }

  # update columns of table "masterdata"
  enum masterdata_update_column {
    # column name
    key

    # column name
    value
  }

  # columns and relationships of "messages"
  type messages {
    # An object relationship
    conversation: conversations!
    conversationid: uuid!
    created_at: timestamptz!
    id: uuid!
    image: Boolean!
    image_path: String
    isoutbound: Boolean!
    msid: String!
    read: Boolean!
    status: String!
    text: String
    updated_at: timestamptz!
  }

  # aggregated selection of "messages"
  type messages_aggregate {
    aggregate: messages_aggregate_fields
    nodes: [messages!]!
  }

  # aggregate fields of "messages"
  type messages_aggregate_fields {
    count(columns: [messages_select_column!], distinct: Boolean): Int
    max: messages_max_fields
    min: messages_min_fields
  }

  # order by aggregate values of table "messages"
  input messages_aggregate_order_by {
    count: order_by
    max: messages_max_order_by
    min: messages_min_order_by
  }

  # input type for inserting array relation for remote table "messages"
  input messages_arr_rel_insert_input {
    data: [messages_insert_input!]!
    on_conflict: messages_on_conflict
  }

  # Boolean expression to filter rows from the table "messages". All fields are combined with a logical 'AND'.
  input messages_bool_exp {
    _and: [messages_bool_exp]
    _not: messages_bool_exp
    _or: [messages_bool_exp]
    conversation: conversations_bool_exp
    conversationid: uuid_comparison_exp
    created_at: timestamptz_comparison_exp
    id: uuid_comparison_exp
    image: Boolean_comparison_exp
    image_path: String_comparison_exp
    isoutbound: Boolean_comparison_exp
    msid: String_comparison_exp
    read: Boolean_comparison_exp
    status: String_comparison_exp
    text: String_comparison_exp
    updated_at: timestamptz_comparison_exp
  }

  # unique or primary key constraints on table "messages"
  enum messages_constraint {
    # unique or primary key constraint
    messages_msid_key

    # unique or primary key constraint
    messages_pkey
  }

  # input type for inserting data into table "messages"
  input messages_insert_input {
    conversation: conversations_obj_rel_insert_input
    conversationid: uuid
    created_at: timestamptz
    id: uuid
    image: Boolean
    image_path: String
    isoutbound: Boolean
    msid: String
    read: Boolean
    status: String
    text: String
    updated_at: timestamptz
  }

  # aggregate max on columns
  type messages_max_fields {
    conversationid: uuid
    created_at: timestamptz
    id: uuid
    image_path: String
    msid: String
    status: String
    text: String
    updated_at: timestamptz
  }

  # order by max() on columns of table "messages"
  input messages_max_order_by {
    conversationid: order_by
    created_at: order_by
    id: order_by
    image_path: order_by
    msid: order_by
    status: order_by
    text: order_by
    updated_at: order_by
  }

  # aggregate min on columns
  type messages_min_fields {
    conversationid: uuid
    created_at: timestamptz
    id: uuid
    image_path: String
    msid: String
    status: String
    text: String
    updated_at: timestamptz
  }

  # order by min() on columns of table "messages"
  input messages_min_order_by {
    conversationid: order_by
    created_at: order_by
    id: order_by
    image_path: order_by
    msid: order_by
    status: order_by
    text: order_by
    updated_at: order_by
  }

  # response of any mutation on the table "messages"
  type messages_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [messages!]!
  }

  # input type for inserting object relation for remote table "messages"
  input messages_obj_rel_insert_input {
    data: messages_insert_input!
    on_conflict: messages_on_conflict
  }

  # on conflict condition type for table "messages"
  input messages_on_conflict {
    constraint: messages_constraint!
    update_columns: [messages_update_column!]!
    where: messages_bool_exp
  }

  # ordering options when selecting data from "messages"
  input messages_order_by {
    conversation: conversations_order_by
    conversationid: order_by
    created_at: order_by
    id: order_by
    image: order_by
    image_path: order_by
    isoutbound: order_by
    msid: order_by
    read: order_by
    status: order_by
    text: order_by
    updated_at: order_by
  }

  # primary key columns input for table: "messages"
  input messages_pk_columns_input {
    id: uuid!
  }

  # select columns of table "messages"
  enum messages_select_column {
    # column name
    conversationid

    # column name
    created_at

    # column name
    id

    # column name
    image

    # column name
    image_path

    # column name
    isoutbound

    # column name
    msid

    # column name
    read

    # column name
    status

    # column name
    text

    # column name
    updated_at
  }

  # input type for updating data in table "messages"
  input messages_set_input {
    conversationid: uuid
    created_at: timestamptz
    id: uuid
    image: Boolean
    image_path: String
    isoutbound: Boolean
    msid: String
    read: Boolean
    status: String
    text: String
    updated_at: timestamptz
  }

  # update columns of table "messages"
  enum messages_update_column {
    # column name
    conversationid

    # column name
    created_at

    # column name
    id

    # column name
    image

    # column name
    image_path

    # column name
    isoutbound

    # column name
    msid

    # column name
    read

    # column name
    status

    # column name
    text

    # column name
    updated_at
  }

  # mutation root
  type mutation_root {
    # delete data from the table: "allocations"
    delete_allocations(
      # filter the rows which have to be deleted
      where: allocations_bool_exp!
    ): allocations_mutation_response

    # delete single row from the table: "allocations"
    delete_allocations_by_pk(id: uuid!): allocations

    # delete data from the table: "appointments"
    delete_appointments(
      # filter the rows which have to be deleted
      where: appointments_bool_exp!
    ): appointments_mutation_response

    # delete single row from the table: "appointments"
    delete_appointments_by_pk(id: uuid!): appointments

    # delete data from the table: "associations"
    delete_associations(
      # filter the rows which have to be deleted
      where: associations_bool_exp!
    ): associations_mutation_response

    # delete single row from the table: "associations"
    delete_associations_by_pk(id: uuid!): associations

    # delete data from the table: "audit_trail"
    delete_audit_trail(
      # filter the rows which have to be deleted
      where: audit_trail_bool_exp!
    ): audit_trail_mutation_response

    # delete single row from the table: "audit_trail"
    delete_audit_trail_by_pk(id: Int!): audit_trail

    # delete data from the table: "available_jobs"
    delete_available_jobs(
      # filter the rows which have to be deleted
      where: available_jobs_bool_exp!
    ): available_jobs_mutation_response

    # delete single row from the table: "available_jobs"
    delete_available_jobs_by_pk(id: uuid!): available_jobs

    # delete data from the table: "bodyshops"
    delete_bodyshops(
      # filter the rows which have to be deleted
      where: bodyshops_bool_exp!
    ): bodyshops_mutation_response

    # delete single row from the table: "bodyshops"
    delete_bodyshops_by_pk(id: uuid!): bodyshops

    # delete data from the table: "cccontracts"
    delete_cccontracts(
      # filter the rows which have to be deleted
      where: cccontracts_bool_exp!
    ): cccontracts_mutation_response

    # delete single row from the table: "cccontracts"
    delete_cccontracts_by_pk(id: uuid!): cccontracts

    # delete data from the table: "conversations"
    delete_conversations(
      # filter the rows which have to be deleted
      where: conversations_bool_exp!
    ): conversations_mutation_response

    # delete single row from the table: "conversations"
    delete_conversations_by_pk(id: uuid!): conversations

    # delete data from the table: "counters"
    delete_counters(
      # filter the rows which have to be deleted
      where: counters_bool_exp!
    ): counters_mutation_response

    # delete single row from the table: "counters"
    delete_counters_by_pk(id: uuid!): counters

    # delete data from the table: "courtesycars"
    delete_courtesycars(
      # filter the rows which have to be deleted
      where: courtesycars_bool_exp!
    ): courtesycars_mutation_response

    # delete single row from the table: "courtesycars"
    delete_courtesycars_by_pk(id: uuid!): courtesycars

    # delete data from the table: "csi"
    delete_csi(
      # filter the rows which have to be deleted
      where: csi_bool_exp!
    ): csi_mutation_response

    # delete single row from the table: "csi"
    delete_csi_by_pk(id: uuid!): csi

    # delete data from the table: "csiquestions"
    delete_csiquestions(
      # filter the rows which have to be deleted
      where: csiquestions_bool_exp!
    ): csiquestions_mutation_response

    # delete single row from the table: "csiquestions"
    delete_csiquestions_by_pk(id: uuid!): csiquestions

    # delete data from the table: "documents"
    delete_documents(
      # filter the rows which have to be deleted
      where: documents_bool_exp!
    ): documents_mutation_response

    # delete single row from the table: "documents"
    delete_documents_by_pk(id: uuid!): documents

    # delete data from the table: "employees"
    delete_employees(
      # filter the rows which have to be deleted
      where: employees_bool_exp!
    ): employees_mutation_response

    # delete single row from the table: "employees"
    delete_employees_by_pk(id: uuid!): employees

    # delete data from the table: "invoicelines"
    delete_invoicelines(
      # filter the rows which have to be deleted
      where: invoicelines_bool_exp!
    ): invoicelines_mutation_response

    # delete single row from the table: "invoicelines"
    delete_invoicelines_by_pk(id: uuid!): invoicelines

    # delete data from the table: "invoices"
    delete_invoices(
      # filter the rows which have to be deleted
      where: invoices_bool_exp!
    ): invoices_mutation_response

    # delete single row from the table: "invoices"
    delete_invoices_by_pk(id: uuid!): invoices

    # delete data from the table: "job_conversations"
    delete_job_conversations(
      # filter the rows which have to be deleted
      where: job_conversations_bool_exp!
    ): job_conversations_mutation_response

    # delete single row from the table: "job_conversations"
    delete_job_conversations_by_pk(
      conversationid: uuid!
      jobid: uuid!
    ): job_conversations

    # delete data from the table: "joblines"
    delete_joblines(
      # filter the rows which have to be deleted
      where: joblines_bool_exp!
    ): joblines_mutation_response

    # delete single row from the table: "joblines"
    delete_joblines_by_pk(id: uuid!): joblines

    # delete data from the table: "jobs"
    delete_jobs(
      # filter the rows which have to be deleted
      where: jobs_bool_exp!
    ): jobs_mutation_response

    # delete single row from the table: "jobs"
    delete_jobs_by_pk(id: uuid!): jobs

    # delete data from the table: "masterdata"
    delete_masterdata(
      # filter the rows which have to be deleted
      where: masterdata_bool_exp!
    ): masterdata_mutation_response

    # delete single row from the table: "masterdata"
    delete_masterdata_by_pk(key: String!): masterdata

    # delete data from the table: "messages"
    delete_messages(
      # filter the rows which have to be deleted
      where: messages_bool_exp!
    ): messages_mutation_response

    # delete single row from the table: "messages"
    delete_messages_by_pk(id: uuid!): messages

    # delete data from the table: "notes"
    delete_notes(
      # filter the rows which have to be deleted
      where: notes_bool_exp!
    ): notes_mutation_response

    # delete single row from the table: "notes"
    delete_notes_by_pk(id: uuid!): notes

    # delete data from the table: "owners"
    delete_owners(
      # filter the rows which have to be deleted
      where: owners_bool_exp!
    ): owners_mutation_response

    # delete single row from the table: "owners"
    delete_owners_by_pk(id: uuid!): owners

    # delete data from the table: "parts_order_lines"
    delete_parts_order_lines(
      # filter the rows which have to be deleted
      where: parts_order_lines_bool_exp!
    ): parts_order_lines_mutation_response

    # delete single row from the table: "parts_order_lines"
    delete_parts_order_lines_by_pk(id: uuid!): parts_order_lines

    # delete data from the table: "parts_orders"
    delete_parts_orders(
      # filter the rows which have to be deleted
      where: parts_orders_bool_exp!
    ): parts_orders_mutation_response

    # delete single row from the table: "parts_orders"
    delete_parts_orders_by_pk(id: uuid!): parts_orders

    # delete data from the table: "payments"
    delete_payments(
      # filter the rows which have to be deleted
      where: payments_bool_exp!
    ): payments_mutation_response

    # delete single row from the table: "payments"
    delete_payments_by_pk(id: uuid!): payments

    # delete data from the table: "scoreboard"
    delete_scoreboard(
      # filter the rows which have to be deleted
      where: scoreboard_bool_exp!
    ): scoreboard_mutation_response

    # delete single row from the table: "scoreboard"
    delete_scoreboard_by_pk(id: uuid!): scoreboard

    # delete data from the table: "templates"
    delete_templates(
      # filter the rows which have to be deleted
      where: templates_bool_exp!
    ): templates_mutation_response

    # delete single row from the table: "templates"
    delete_templates_by_pk(id: uuid!): templates

    # delete data from the table: "timetickets"
    delete_timetickets(
      # filter the rows which have to be deleted
      where: timetickets_bool_exp!
    ): timetickets_mutation_response

    # delete single row from the table: "timetickets"
    delete_timetickets_by_pk(id: uuid!): timetickets

    # delete data from the table: "users"
    delete_users(
      # filter the rows which have to be deleted
      where: users_bool_exp!
    ): users_mutation_response

    # delete single row from the table: "users"
    delete_users_by_pk(email: String!): users

    # delete data from the table: "vehicles"
    delete_vehicles(
      # filter the rows which have to be deleted
      where: vehicles_bool_exp!
    ): vehicles_mutation_response

    # delete single row from the table: "vehicles"
    delete_vehicles_by_pk(id: uuid!): vehicles

    # delete data from the table: "vendors"
    delete_vendors(
      # filter the rows which have to be deleted
      where: vendors_bool_exp!
    ): vendors_mutation_response

    # delete single row from the table: "vendors"
    delete_vendors_by_pk(id: uuid!): vendors

    # insert data into the table: "allocations"
    insert_allocations(
      # the rows to be inserted
      objects: [allocations_insert_input!]!

      # on conflict condition
      on_conflict: allocations_on_conflict
    ): allocations_mutation_response

    # insert a single row into the table: "allocations"
    insert_allocations_one(
      # the row to be inserted
      object: allocations_insert_input!

      # on conflict condition
      on_conflict: allocations_on_conflict
    ): allocations

    # insert data into the table: "appointments"
    insert_appointments(
      # the rows to be inserted
      objects: [appointments_insert_input!]!

      # on conflict condition
      on_conflict: appointments_on_conflict
    ): appointments_mutation_response

    # insert a single row into the table: "appointments"
    insert_appointments_one(
      # the row to be inserted
      object: appointments_insert_input!

      # on conflict condition
      on_conflict: appointments_on_conflict
    ): appointments

    # insert data into the table: "associations"
    insert_associations(
      # the rows to be inserted
      objects: [associations_insert_input!]!

      # on conflict condition
      on_conflict: associations_on_conflict
    ): associations_mutation_response

    # insert a single row into the table: "associations"
    insert_associations_one(
      # the row to be inserted
      object: associations_insert_input!

      # on conflict condition
      on_conflict: associations_on_conflict
    ): associations

    # insert data into the table: "audit_trail"
    insert_audit_trail(
      # the rows to be inserted
      objects: [audit_trail_insert_input!]!

      # on conflict condition
      on_conflict: audit_trail_on_conflict
    ): audit_trail_mutation_response

    # insert a single row into the table: "audit_trail"
    insert_audit_trail_one(
      # the row to be inserted
      object: audit_trail_insert_input!

      # on conflict condition
      on_conflict: audit_trail_on_conflict
    ): audit_trail

    # insert data into the table: "available_jobs"
    insert_available_jobs(
      # the rows to be inserted
      objects: [available_jobs_insert_input!]!

      # on conflict condition
      on_conflict: available_jobs_on_conflict
    ): available_jobs_mutation_response

    # insert a single row into the table: "available_jobs"
    insert_available_jobs_one(
      # the row to be inserted
      object: available_jobs_insert_input!

      # on conflict condition
      on_conflict: available_jobs_on_conflict
    ): available_jobs

    # insert data into the table: "bodyshops"
    insert_bodyshops(
      # the rows to be inserted
      objects: [bodyshops_insert_input!]!

      # on conflict condition
      on_conflict: bodyshops_on_conflict
    ): bodyshops_mutation_response

    # insert a single row into the table: "bodyshops"
    insert_bodyshops_one(
      # the row to be inserted
      object: bodyshops_insert_input!

      # on conflict condition
      on_conflict: bodyshops_on_conflict
    ): bodyshops

    # insert data into the table: "cccontracts"
    insert_cccontracts(
      # the rows to be inserted
      objects: [cccontracts_insert_input!]!

      # on conflict condition
      on_conflict: cccontracts_on_conflict
    ): cccontracts_mutation_response

    # insert a single row into the table: "cccontracts"
    insert_cccontracts_one(
      # the row to be inserted
      object: cccontracts_insert_input!

      # on conflict condition
      on_conflict: cccontracts_on_conflict
    ): cccontracts

    # insert data into the table: "conversations"
    insert_conversations(
      # the rows to be inserted
      objects: [conversations_insert_input!]!

      # on conflict condition
      on_conflict: conversations_on_conflict
    ): conversations_mutation_response

    # insert a single row into the table: "conversations"
    insert_conversations_one(
      # the row to be inserted
      object: conversations_insert_input!

      # on conflict condition
      on_conflict: conversations_on_conflict
    ): conversations

    # insert data into the table: "counters"
    insert_counters(
      # the rows to be inserted
      objects: [counters_insert_input!]!

      # on conflict condition
      on_conflict: counters_on_conflict
    ): counters_mutation_response

    # insert a single row into the table: "counters"
    insert_counters_one(
      # the row to be inserted
      object: counters_insert_input!

      # on conflict condition
      on_conflict: counters_on_conflict
    ): counters

    # insert data into the table: "courtesycars"
    insert_courtesycars(
      # the rows to be inserted
      objects: [courtesycars_insert_input!]!

      # on conflict condition
      on_conflict: courtesycars_on_conflict
    ): courtesycars_mutation_response

    # insert a single row into the table: "courtesycars"
    insert_courtesycars_one(
      # the row to be inserted
      object: courtesycars_insert_input!

      # on conflict condition
      on_conflict: courtesycars_on_conflict
    ): courtesycars

    # insert data into the table: "csi"
    insert_csi(
      # the rows to be inserted
      objects: [csi_insert_input!]!

      # on conflict condition
      on_conflict: csi_on_conflict
    ): csi_mutation_response

    # insert a single row into the table: "csi"
    insert_csi_one(
      # the row to be inserted
      object: csi_insert_input!

      # on conflict condition
      on_conflict: csi_on_conflict
    ): csi

    # insert data into the table: "csiquestions"
    insert_csiquestions(
      # the rows to be inserted
      objects: [csiquestions_insert_input!]!

      # on conflict condition
      on_conflict: csiquestions_on_conflict
    ): csiquestions_mutation_response

    # insert a single row into the table: "csiquestions"
    insert_csiquestions_one(
      # the row to be inserted
      object: csiquestions_insert_input!

      # on conflict condition
      on_conflict: csiquestions_on_conflict
    ): csiquestions

    # insert data into the table: "documents"
    insert_documents(
      # the rows to be inserted
      objects: [documents_insert_input!]!

      # on conflict condition
      on_conflict: documents_on_conflict
    ): documents_mutation_response

    # insert a single row into the table: "documents"
    insert_documents_one(
      # the row to be inserted
      object: documents_insert_input!

      # on conflict condition
      on_conflict: documents_on_conflict
    ): documents

    # insert data into the table: "employees"
    insert_employees(
      # the rows to be inserted
      objects: [employees_insert_input!]!

      # on conflict condition
      on_conflict: employees_on_conflict
    ): employees_mutation_response

    # insert a single row into the table: "employees"
    insert_employees_one(
      # the row to be inserted
      object: employees_insert_input!

      # on conflict condition
      on_conflict: employees_on_conflict
    ): employees

    # insert data into the table: "invoicelines"
    insert_invoicelines(
      # the rows to be inserted
      objects: [invoicelines_insert_input!]!

      # on conflict condition
      on_conflict: invoicelines_on_conflict
    ): invoicelines_mutation_response

    # insert a single row into the table: "invoicelines"
    insert_invoicelines_one(
      # the row to be inserted
      object: invoicelines_insert_input!

      # on conflict condition
      on_conflict: invoicelines_on_conflict
    ): invoicelines

    # insert data into the table: "invoices"
    insert_invoices(
      # the rows to be inserted
      objects: [invoices_insert_input!]!

      # on conflict condition
      on_conflict: invoices_on_conflict
    ): invoices_mutation_response

    # insert a single row into the table: "invoices"
    insert_invoices_one(
      # the row to be inserted
      object: invoices_insert_input!

      # on conflict condition
      on_conflict: invoices_on_conflict
    ): invoices

    # insert data into the table: "job_conversations"
    insert_job_conversations(
      # the rows to be inserted
      objects: [job_conversations_insert_input!]!

      # on conflict condition
      on_conflict: job_conversations_on_conflict
    ): job_conversations_mutation_response

    # insert a single row into the table: "job_conversations"
    insert_job_conversations_one(
      # the row to be inserted
      object: job_conversations_insert_input!

      # on conflict condition
      on_conflict: job_conversations_on_conflict
    ): job_conversations

    # insert data into the table: "joblines"
    insert_joblines(
      # the rows to be inserted
      objects: [joblines_insert_input!]!

      # on conflict condition
      on_conflict: joblines_on_conflict
    ): joblines_mutation_response

    # insert a single row into the table: "joblines"
    insert_joblines_one(
      # the row to be inserted
      object: joblines_insert_input!

      # on conflict condition
      on_conflict: joblines_on_conflict
    ): joblines

    # insert data into the table: "jobs"
    insert_jobs(
      # the rows to be inserted
      objects: [jobs_insert_input!]!

      # on conflict condition
      on_conflict: jobs_on_conflict
    ): jobs_mutation_response

    # insert a single row into the table: "jobs"
    insert_jobs_one(
      # the row to be inserted
      object: jobs_insert_input!

      # on conflict condition
      on_conflict: jobs_on_conflict
    ): jobs

    # insert data into the table: "masterdata"
    insert_masterdata(
      # the rows to be inserted
      objects: [masterdata_insert_input!]!

      # on conflict condition
      on_conflict: masterdata_on_conflict
    ): masterdata_mutation_response

    # insert a single row into the table: "masterdata"
    insert_masterdata_one(
      # the row to be inserted
      object: masterdata_insert_input!

      # on conflict condition
      on_conflict: masterdata_on_conflict
    ): masterdata

    # insert data into the table: "messages"
    insert_messages(
      # the rows to be inserted
      objects: [messages_insert_input!]!

      # on conflict condition
      on_conflict: messages_on_conflict
    ): messages_mutation_response

    # insert a single row into the table: "messages"
    insert_messages_one(
      # the row to be inserted
      object: messages_insert_input!

      # on conflict condition
      on_conflict: messages_on_conflict
    ): messages

    # insert data into the table: "notes"
    insert_notes(
      # the rows to be inserted
      objects: [notes_insert_input!]!

      # on conflict condition
      on_conflict: notes_on_conflict
    ): notes_mutation_response

    # insert a single row into the table: "notes"
    insert_notes_one(
      # the row to be inserted
      object: notes_insert_input!

      # on conflict condition
      on_conflict: notes_on_conflict
    ): notes

    # insert data into the table: "owners"
    insert_owners(
      # the rows to be inserted
      objects: [owners_insert_input!]!

      # on conflict condition
      on_conflict: owners_on_conflict
    ): owners_mutation_response

    # insert a single row into the table: "owners"
    insert_owners_one(
      # the row to be inserted
      object: owners_insert_input!

      # on conflict condition
      on_conflict: owners_on_conflict
    ): owners

    # insert data into the table: "parts_order_lines"
    insert_parts_order_lines(
      # the rows to be inserted
      objects: [parts_order_lines_insert_input!]!

      # on conflict condition
      on_conflict: parts_order_lines_on_conflict
    ): parts_order_lines_mutation_response

    # insert a single row into the table: "parts_order_lines"
    insert_parts_order_lines_one(
      # the row to be inserted
      object: parts_order_lines_insert_input!

      # on conflict condition
      on_conflict: parts_order_lines_on_conflict
    ): parts_order_lines

    # insert data into the table: "parts_orders"
    insert_parts_orders(
      # the rows to be inserted
      objects: [parts_orders_insert_input!]!

      # on conflict condition
      on_conflict: parts_orders_on_conflict
    ): parts_orders_mutation_response

    # insert a single row into the table: "parts_orders"
    insert_parts_orders_one(
      # the row to be inserted
      object: parts_orders_insert_input!

      # on conflict condition
      on_conflict: parts_orders_on_conflict
    ): parts_orders

    # insert data into the table: "payments"
    insert_payments(
      # the rows to be inserted
      objects: [payments_insert_input!]!

      # on conflict condition
      on_conflict: payments_on_conflict
    ): payments_mutation_response

    # insert a single row into the table: "payments"
    insert_payments_one(
      # the row to be inserted
      object: payments_insert_input!

      # on conflict condition
      on_conflict: payments_on_conflict
    ): payments

    # insert data into the table: "scoreboard"
    insert_scoreboard(
      # the rows to be inserted
      objects: [scoreboard_insert_input!]!

      # on conflict condition
      on_conflict: scoreboard_on_conflict
    ): scoreboard_mutation_response

    # insert a single row into the table: "scoreboard"
    insert_scoreboard_one(
      # the row to be inserted
      object: scoreboard_insert_input!

      # on conflict condition
      on_conflict: scoreboard_on_conflict
    ): scoreboard

    # insert data into the table: "templates"
    insert_templates(
      # the rows to be inserted
      objects: [templates_insert_input!]!

      # on conflict condition
      on_conflict: templates_on_conflict
    ): templates_mutation_response

    # insert a single row into the table: "templates"
    insert_templates_one(
      # the row to be inserted
      object: templates_insert_input!

      # on conflict condition
      on_conflict: templates_on_conflict
    ): templates

    # insert data into the table: "timetickets"
    insert_timetickets(
      # the rows to be inserted
      objects: [timetickets_insert_input!]!

      # on conflict condition
      on_conflict: timetickets_on_conflict
    ): timetickets_mutation_response

    # insert a single row into the table: "timetickets"
    insert_timetickets_one(
      # the row to be inserted
      object: timetickets_insert_input!

      # on conflict condition
      on_conflict: timetickets_on_conflict
    ): timetickets

    # insert data into the table: "users"
    insert_users(
      # the rows to be inserted
      objects: [users_insert_input!]!

      # on conflict condition
      on_conflict: users_on_conflict
    ): users_mutation_response

    # insert a single row into the table: "users"
    insert_users_one(
      # the row to be inserted
      object: users_insert_input!

      # on conflict condition
      on_conflict: users_on_conflict
    ): users

    # insert data into the table: "vehicles"
    insert_vehicles(
      # the rows to be inserted
      objects: [vehicles_insert_input!]!

      # on conflict condition
      on_conflict: vehicles_on_conflict
    ): vehicles_mutation_response

    # insert a single row into the table: "vehicles"
    insert_vehicles_one(
      # the row to be inserted
      object: vehicles_insert_input!

      # on conflict condition
      on_conflict: vehicles_on_conflict
    ): vehicles

    # insert data into the table: "vendors"
    insert_vendors(
      # the rows to be inserted
      objects: [vendors_insert_input!]!

      # on conflict condition
      on_conflict: vendors_on_conflict
    ): vendors_mutation_response

    # insert a single row into the table: "vendors"
    insert_vendors_one(
      # the row to be inserted
      object: vendors_insert_input!

      # on conflict condition
      on_conflict: vendors_on_conflict
    ): vendors

    # update data of the table: "allocations"
    update_allocations(
      # increments the integer columns with given value of the filtered values
      _inc: allocations_inc_input

      # sets the columns of the filtered rows to the given values
      _set: allocations_set_input

      # filter the rows which have to be updated
      where: allocations_bool_exp!
    ): allocations_mutation_response

    # update single row of the table: "allocations"
    update_allocations_by_pk(
      # increments the integer columns with given value of the filtered values
      _inc: allocations_inc_input

      # sets the columns of the filtered rows to the given values
      _set: allocations_set_input
      pk_columns: allocations_pk_columns_input!
    ): allocations

    # update data of the table: "appointments"
    update_appointments(
      # sets the columns of the filtered rows to the given values
      _set: appointments_set_input

      # filter the rows which have to be updated
      where: appointments_bool_exp!
    ): appointments_mutation_response

    # update single row of the table: "appointments"
    update_appointments_by_pk(
      # sets the columns of the filtered rows to the given values
      _set: appointments_set_input
      pk_columns: appointments_pk_columns_input!
    ): appointments

    # update data of the table: "associations"
    update_associations(
      # increments the integer columns with given value of the filtered values
      _inc: associations_inc_input

      # sets the columns of the filtered rows to the given values
      _set: associations_set_input

      # filter the rows which have to be updated
      where: associations_bool_exp!
    ): associations_mutation_response

    # update single row of the table: "associations"
    update_associations_by_pk(
      # increments the integer columns with given value of the filtered values
      _inc: associations_inc_input

      # sets the columns of the filtered rows to the given values
      _set: associations_set_input
      pk_columns: associations_pk_columns_input!
    ): associations

    # update data of the table: "audit_trail"
    update_audit_trail(
      # increments the integer columns with given value of the filtered values
      _inc: audit_trail_inc_input

      # sets the columns of the filtered rows to the given values
      _set: audit_trail_set_input

      # filter the rows which have to be updated
      where: audit_trail_bool_exp!
    ): audit_trail_mutation_response

    # update single row of the table: "audit_trail"
    update_audit_trail_by_pk(
      # increments the integer columns with given value of the filtered values
      _inc: audit_trail_inc_input

      # sets the columns of the filtered rows to the given values
      _set: audit_trail_set_input
      pk_columns: audit_trail_pk_columns_input!
    ): audit_trail

    # update data of the table: "available_jobs"
    update_available_jobs(
      # append existing jsonb value of filtered columns with new jsonb value
      _append: available_jobs_append_input

      # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
      _delete_at_path: available_jobs_delete_at_path_input

      # delete the array element with specified index (negative integers count from
      # the end). throws an error if top level container is not an array
      _delete_elem: available_jobs_delete_elem_input

      # delete key/value pair or string element. key/value pairs are matched based on their key value
      _delete_key: available_jobs_delete_key_input

      # increments the integer columns with given value of the filtered values
      _inc: available_jobs_inc_input

      # prepend existing jsonb value of filtered columns with new jsonb value
      _prepend: available_jobs_prepend_input

      # sets the columns of the filtered rows to the given values
      _set: available_jobs_set_input

      # filter the rows which have to be updated
      where: available_jobs_bool_exp!
    ): available_jobs_mutation_response

    # update single row of the table: "available_jobs"
    update_available_jobs_by_pk(
      # append existing jsonb value of filtered columns with new jsonb value
      _append: available_jobs_append_input

      # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
      _delete_at_path: available_jobs_delete_at_path_input

      # delete the array element with specified index (negative integers count from
      # the end). throws an error if top level container is not an array
      _delete_elem: available_jobs_delete_elem_input

      # delete key/value pair or string element. key/value pairs are matched based on their key value
      _delete_key: available_jobs_delete_key_input

      # increments the integer columns with given value of the filtered values
      _inc: available_jobs_inc_input

      # prepend existing jsonb value of filtered columns with new jsonb value
      _prepend: available_jobs_prepend_input

      # sets the columns of the filtered rows to the given values
      _set: available_jobs_set_input
      pk_columns: available_jobs_pk_columns_input!
    ): available_jobs

    # update data of the table: "bodyshops"
    update_bodyshops(
      # append existing jsonb value of filtered columns with new jsonb value
      _append: bodyshops_append_input

      # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
      _delete_at_path: bodyshops_delete_at_path_input

      # delete the array element with specified index (negative integers count from
      # the end). throws an error if top level container is not an array
      _delete_elem: bodyshops_delete_elem_input

      # delete key/value pair or string element. key/value pairs are matched based on their key value
      _delete_key: bodyshops_delete_key_input

      # increments the integer columns with given value of the filtered values
      _inc: bodyshops_inc_input

      # prepend existing jsonb value of filtered columns with new jsonb value
      _prepend: bodyshops_prepend_input

      # sets the columns of the filtered rows to the given values
      _set: bodyshops_set_input

      # filter the rows which have to be updated
      where: bodyshops_bool_exp!
    ): bodyshops_mutation_response

    # update single row of the table: "bodyshops"
    update_bodyshops_by_pk(
      # append existing jsonb value of filtered columns with new jsonb value
      _append: bodyshops_append_input

      # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
      _delete_at_path: bodyshops_delete_at_path_input

      # delete the array element with specified index (negative integers count from
      # the end). throws an error if top level container is not an array
      _delete_elem: bodyshops_delete_elem_input

      # delete key/value pair or string element. key/value pairs are matched based on their key value
      _delete_key: bodyshops_delete_key_input

      # increments the integer columns with given value of the filtered values
      _inc: bodyshops_inc_input

      # prepend existing jsonb value of filtered columns with new jsonb value
      _prepend: bodyshops_prepend_input

      # sets the columns of the filtered rows to the given values
      _set: bodyshops_set_input
      pk_columns: bodyshops_pk_columns_input!
    ): bodyshops

    # update data of the table: "cccontracts"
    update_cccontracts(
      # increments the integer columns with given value of the filtered values
      _inc: cccontracts_inc_input

      # sets the columns of the filtered rows to the given values
      _set: cccontracts_set_input

      # filter the rows which have to be updated
      where: cccontracts_bool_exp!
    ): cccontracts_mutation_response

    # update single row of the table: "cccontracts"
    update_cccontracts_by_pk(
      # increments the integer columns with given value of the filtered values
      _inc: cccontracts_inc_input

      # sets the columns of the filtered rows to the given values
      _set: cccontracts_set_input
      pk_columns: cccontracts_pk_columns_input!
    ): cccontracts

    # update data of the table: "conversations"
    update_conversations(
      # sets the columns of the filtered rows to the given values
      _set: conversations_set_input

      # filter the rows which have to be updated
      where: conversations_bool_exp!
    ): conversations_mutation_response

    # update single row of the table: "conversations"
    update_conversations_by_pk(
      # sets the columns of the filtered rows to the given values
      _set: conversations_set_input
      pk_columns: conversations_pk_columns_input!
    ): conversations

    # update data of the table: "counters"
    update_counters(
      # increments the integer columns with given value of the filtered values
      _inc: counters_inc_input

      # sets the columns of the filtered rows to the given values
      _set: counters_set_input

      # filter the rows which have to be updated
      where: counters_bool_exp!
    ): counters_mutation_response

    # update single row of the table: "counters"
    update_counters_by_pk(
      # increments the integer columns with given value of the filtered values
      _inc: counters_inc_input

      # sets the columns of the filtered rows to the given values
      _set: counters_set_input
      pk_columns: counters_pk_columns_input!
    ): counters

    # update data of the table: "courtesycars"
    update_courtesycars(
      # increments the integer columns with given value of the filtered values
      _inc: courtesycars_inc_input

      # sets the columns of the filtered rows to the given values
      _set: courtesycars_set_input

      # filter the rows which have to be updated
      where: courtesycars_bool_exp!
    ): courtesycars_mutation_response

    # update single row of the table: "courtesycars"
    update_courtesycars_by_pk(
      # increments the integer columns with given value of the filtered values
      _inc: courtesycars_inc_input

      # sets the columns of the filtered rows to the given values
      _set: courtesycars_set_input
      pk_columns: courtesycars_pk_columns_input!
    ): courtesycars

    # update data of the table: "csi"
    update_csi(
      # append existing jsonb value of filtered columns with new jsonb value
      _append: csi_append_input

      # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
      _delete_at_path: csi_delete_at_path_input

      # delete the array element with specified index (negative integers count from
      # the end). throws an error if top level container is not an array
      _delete_elem: csi_delete_elem_input

      # delete key/value pair or string element. key/value pairs are matched based on their key value
      _delete_key: csi_delete_key_input

      # prepend existing jsonb value of filtered columns with new jsonb value
      _prepend: csi_prepend_input

      # sets the columns of the filtered rows to the given values
      _set: csi_set_input

      # filter the rows which have to be updated
      where: csi_bool_exp!
    ): csi_mutation_response

    # update single row of the table: "csi"
    update_csi_by_pk(
      # append existing jsonb value of filtered columns with new jsonb value
      _append: csi_append_input

      # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
      _delete_at_path: csi_delete_at_path_input

      # delete the array element with specified index (negative integers count from
      # the end). throws an error if top level container is not an array
      _delete_elem: csi_delete_elem_input

      # delete key/value pair or string element. key/value pairs are matched based on their key value
      _delete_key: csi_delete_key_input

      # prepend existing jsonb value of filtered columns with new jsonb value
      _prepend: csi_prepend_input

      # sets the columns of the filtered rows to the given values
      _set: csi_set_input
      pk_columns: csi_pk_columns_input!
    ): csi

    # update data of the table: "csiquestions"
    update_csiquestions(
      # append existing jsonb value of filtered columns with new jsonb value
      _append: csiquestions_append_input

      # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
      _delete_at_path: csiquestions_delete_at_path_input

      # delete the array element with specified index (negative integers count from
      # the end). throws an error if top level container is not an array
      _delete_elem: csiquestions_delete_elem_input

      # delete key/value pair or string element. key/value pairs are matched based on their key value
      _delete_key: csiquestions_delete_key_input

      # prepend existing jsonb value of filtered columns with new jsonb value
      _prepend: csiquestions_prepend_input

      # sets the columns of the filtered rows to the given values
      _set: csiquestions_set_input

      # filter the rows which have to be updated
      where: csiquestions_bool_exp!
    ): csiquestions_mutation_response

    # update single row of the table: "csiquestions"
    update_csiquestions_by_pk(
      # append existing jsonb value of filtered columns with new jsonb value
      _append: csiquestions_append_input

      # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
      _delete_at_path: csiquestions_delete_at_path_input

      # delete the array element with specified index (negative integers count from
      # the end). throws an error if top level container is not an array
      _delete_elem: csiquestions_delete_elem_input

      # delete key/value pair or string element. key/value pairs are matched based on their key value
      _delete_key: csiquestions_delete_key_input

      # prepend existing jsonb value of filtered columns with new jsonb value
      _prepend: csiquestions_prepend_input

      # sets the columns of the filtered rows to the given values
      _set: csiquestions_set_input
      pk_columns: csiquestions_pk_columns_input!
    ): csiquestions

    # update data of the table: "documents"
    update_documents(
      # sets the columns of the filtered rows to the given values
      _set: documents_set_input

      # filter the rows which have to be updated
      where: documents_bool_exp!
    ): documents_mutation_response

    # update single row of the table: "documents"
    update_documents_by_pk(
      # sets the columns of the filtered rows to the given values
      _set: documents_set_input
      pk_columns: documents_pk_columns_input!
    ): documents

    # update data of the table: "employees"
    update_employees(
      # increments the integer columns with given value of the filtered values
      _inc: employees_inc_input

      # sets the columns of the filtered rows to the given values
      _set: employees_set_input

      # filter the rows which have to be updated
      where: employees_bool_exp!
    ): employees_mutation_response

    # update single row of the table: "employees"
    update_employees_by_pk(
      # increments the integer columns with given value of the filtered values
      _inc: employees_inc_input

      # sets the columns of the filtered rows to the given values
      _set: employees_set_input
      pk_columns: employees_pk_columns_input!
    ): employees

    # update data of the table: "invoicelines"
    update_invoicelines(
      # append existing jsonb value of filtered columns with new jsonb value
      _append: invoicelines_append_input

      # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
      _delete_at_path: invoicelines_delete_at_path_input

      # delete the array element with specified index (negative integers count from
      # the end). throws an error if top level container is not an array
      _delete_elem: invoicelines_delete_elem_input

      # delete key/value pair or string element. key/value pairs are matched based on their key value
      _delete_key: invoicelines_delete_key_input

      # increments the integer columns with given value of the filtered values
      _inc: invoicelines_inc_input

      # prepend existing jsonb value of filtered columns with new jsonb value
      _prepend: invoicelines_prepend_input

      # sets the columns of the filtered rows to the given values
      _set: invoicelines_set_input

      # filter the rows which have to be updated
      where: invoicelines_bool_exp!
    ): invoicelines_mutation_response

    # update single row of the table: "invoicelines"
    update_invoicelines_by_pk(
      # append existing jsonb value of filtered columns with new jsonb value
      _append: invoicelines_append_input

      # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
      _delete_at_path: invoicelines_delete_at_path_input

      # delete the array element with specified index (negative integers count from
      # the end). throws an error if top level container is not an array
      _delete_elem: invoicelines_delete_elem_input

      # delete key/value pair or string element. key/value pairs are matched based on their key value
      _delete_key: invoicelines_delete_key_input

      # increments the integer columns with given value of the filtered values
      _inc: invoicelines_inc_input

      # prepend existing jsonb value of filtered columns with new jsonb value
      _prepend: invoicelines_prepend_input

      # sets the columns of the filtered rows to the given values
      _set: invoicelines_set_input
      pk_columns: invoicelines_pk_columns_input!
    ): invoicelines

    # update data of the table: "invoices"
    update_invoices(
      # increments the integer columns with given value of the filtered values
      _inc: invoices_inc_input

      # sets the columns of the filtered rows to the given values
      _set: invoices_set_input

      # filter the rows which have to be updated
      where: invoices_bool_exp!
    ): invoices_mutation_response

    # update single row of the table: "invoices"
    update_invoices_by_pk(
      # increments the integer columns with given value of the filtered values
      _inc: invoices_inc_input

      # sets the columns of the filtered rows to the given values
      _set: invoices_set_input
      pk_columns: invoices_pk_columns_input!
    ): invoices

    # update data of the table: "job_conversations"
    update_job_conversations(
      # sets the columns of the filtered rows to the given values
      _set: job_conversations_set_input

      # filter the rows which have to be updated
      where: job_conversations_bool_exp!
    ): job_conversations_mutation_response

    # update single row of the table: "job_conversations"
    update_job_conversations_by_pk(
      # sets the columns of the filtered rows to the given values
      _set: job_conversations_set_input
      pk_columns: job_conversations_pk_columns_input!
    ): job_conversations

    # update data of the table: "joblines"
    update_joblines(
      # increments the integer columns with given value of the filtered values
      _inc: joblines_inc_input

      # sets the columns of the filtered rows to the given values
      _set: joblines_set_input

      # filter the rows which have to be updated
      where: joblines_bool_exp!
    ): joblines_mutation_response

    # update single row of the table: "joblines"
    update_joblines_by_pk(
      # increments the integer columns with given value of the filtered values
      _inc: joblines_inc_input

      # sets the columns of the filtered rows to the given values
      _set: joblines_set_input
      pk_columns: joblines_pk_columns_input!
    ): joblines

    # update data of the table: "jobs"
    update_jobs(
      # append existing jsonb value of filtered columns with new jsonb value
      _append: jobs_append_input

      # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
      _delete_at_path: jobs_delete_at_path_input

      # delete the array element with specified index (negative integers count from
      # the end). throws an error if top level container is not an array
      _delete_elem: jobs_delete_elem_input

      # delete key/value pair or string element. key/value pairs are matched based on their key value
      _delete_key: jobs_delete_key_input

      # increments the integer columns with given value of the filtered values
      _inc: jobs_inc_input

      # prepend existing jsonb value of filtered columns with new jsonb value
      _prepend: jobs_prepend_input

      # sets the columns of the filtered rows to the given values
      _set: jobs_set_input

      # filter the rows which have to be updated
      where: jobs_bool_exp!
    ): jobs_mutation_response

    # update single row of the table: "jobs"
    update_jobs_by_pk(
      # append existing jsonb value of filtered columns with new jsonb value
      _append: jobs_append_input

      # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
      _delete_at_path: jobs_delete_at_path_input

      # delete the array element with specified index (negative integers count from
      # the end). throws an error if top level container is not an array
      _delete_elem: jobs_delete_elem_input

      # delete key/value pair or string element. key/value pairs are matched based on their key value
      _delete_key: jobs_delete_key_input

      # increments the integer columns with given value of the filtered values
      _inc: jobs_inc_input

      # prepend existing jsonb value of filtered columns with new jsonb value
      _prepend: jobs_prepend_input

      # sets the columns of the filtered rows to the given values
      _set: jobs_set_input
      pk_columns: jobs_pk_columns_input!
    ): jobs

    # update data of the table: "masterdata"
    update_masterdata(
      # sets the columns of the filtered rows to the given values
      _set: masterdata_set_input

      # filter the rows which have to be updated
      where: masterdata_bool_exp!
    ): masterdata_mutation_response

    # update single row of the table: "masterdata"
    update_masterdata_by_pk(
      # sets the columns of the filtered rows to the given values
      _set: masterdata_set_input
      pk_columns: masterdata_pk_columns_input!
    ): masterdata

    # update data of the table: "messages"
    update_messages(
      # sets the columns of the filtered rows to the given values
      _set: messages_set_input

      # filter the rows which have to be updated
      where: messages_bool_exp!
    ): messages_mutation_response

    # update single row of the table: "messages"
    update_messages_by_pk(
      # sets the columns of the filtered rows to the given values
      _set: messages_set_input
      pk_columns: messages_pk_columns_input!
    ): messages

    # update data of the table: "notes"
    update_notes(
      # sets the columns of the filtered rows to the given values
      _set: notes_set_input

      # filter the rows which have to be updated
      where: notes_bool_exp!
    ): notes_mutation_response

    # update single row of the table: "notes"
    update_notes_by_pk(
      # sets the columns of the filtered rows to the given values
      _set: notes_set_input
      pk_columns: notes_pk_columns_input!
    ): notes

    # update data of the table: "owners"
    update_owners(
      # increments the integer columns with given value of the filtered values
      _inc: owners_inc_input

      # sets the columns of the filtered rows to the given values
      _set: owners_set_input

      # filter the rows which have to be updated
      where: owners_bool_exp!
    ): owners_mutation_response

    # update single row of the table: "owners"
    update_owners_by_pk(
      # increments the integer columns with given value of the filtered values
      _inc: owners_inc_input

      # sets the columns of the filtered rows to the given values
      _set: owners_set_input
      pk_columns: owners_pk_columns_input!
    ): owners

    # update data of the table: "parts_order_lines"
    update_parts_order_lines(
      # increments the integer columns with given value of the filtered values
      _inc: parts_order_lines_inc_input

      # sets the columns of the filtered rows to the given values
      _set: parts_order_lines_set_input

      # filter the rows which have to be updated
      where: parts_order_lines_bool_exp!
    ): parts_order_lines_mutation_response

    # update single row of the table: "parts_order_lines"
    update_parts_order_lines_by_pk(
      # increments the integer columns with given value of the filtered values
      _inc: parts_order_lines_inc_input

      # sets the columns of the filtered rows to the given values
      _set: parts_order_lines_set_input
      pk_columns: parts_order_lines_pk_columns_input!
    ): parts_order_lines

    # update data of the table: "parts_orders"
    update_parts_orders(
      # increments the integer columns with given value of the filtered values
      _inc: parts_orders_inc_input

      # sets the columns of the filtered rows to the given values
      _set: parts_orders_set_input

      # filter the rows which have to be updated
      where: parts_orders_bool_exp!
    ): parts_orders_mutation_response

    # update single row of the table: "parts_orders"
    update_parts_orders_by_pk(
      # increments the integer columns with given value of the filtered values
      _inc: parts_orders_inc_input

      # sets the columns of the filtered rows to the given values
      _set: parts_orders_set_input
      pk_columns: parts_orders_pk_columns_input!
    ): parts_orders

    # update data of the table: "payments"
    update_payments(
      # increments the integer columns with given value of the filtered values
      _inc: payments_inc_input

      # sets the columns of the filtered rows to the given values
      _set: payments_set_input

      # filter the rows which have to be updated
      where: payments_bool_exp!
    ): payments_mutation_response

    # update single row of the table: "payments"
    update_payments_by_pk(
      # increments the integer columns with given value of the filtered values
      _inc: payments_inc_input

      # sets the columns of the filtered rows to the given values
      _set: payments_set_input
      pk_columns: payments_pk_columns_input!
    ): payments

    # update data of the table: "scoreboard"
    update_scoreboard(
      # increments the integer columns with given value of the filtered values
      _inc: scoreboard_inc_input

      # sets the columns of the filtered rows to the given values
      _set: scoreboard_set_input

      # filter the rows which have to be updated
      where: scoreboard_bool_exp!
    ): scoreboard_mutation_response

    # update single row of the table: "scoreboard"
    update_scoreboard_by_pk(
      # increments the integer columns with given value of the filtered values
      _inc: scoreboard_inc_input

      # sets the columns of the filtered rows to the given values
      _set: scoreboard_set_input
      pk_columns: scoreboard_pk_columns_input!
    ): scoreboard

    # update data of the table: "templates"
    update_templates(
      # append existing jsonb value of filtered columns with new jsonb value
      _append: templates_append_input

      # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
      _delete_at_path: templates_delete_at_path_input

      # delete the array element with specified index (negative integers count from
      # the end). throws an error if top level container is not an array
      _delete_elem: templates_delete_elem_input

      # delete key/value pair or string element. key/value pairs are matched based on their key value
      _delete_key: templates_delete_key_input

      # prepend existing jsonb value of filtered columns with new jsonb value
      _prepend: templates_prepend_input

      # sets the columns of the filtered rows to the given values
      _set: templates_set_input

      # filter the rows which have to be updated
      where: templates_bool_exp!
    ): templates_mutation_response

    # update single row of the table: "templates"
    update_templates_by_pk(
      # append existing jsonb value of filtered columns with new jsonb value
      _append: templates_append_input

      # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
      _delete_at_path: templates_delete_at_path_input

      # delete the array element with specified index (negative integers count from
      # the end). throws an error if top level container is not an array
      _delete_elem: templates_delete_elem_input

      # delete key/value pair or string element. key/value pairs are matched based on their key value
      _delete_key: templates_delete_key_input

      # prepend existing jsonb value of filtered columns with new jsonb value
      _prepend: templates_prepend_input

      # sets the columns of the filtered rows to the given values
      _set: templates_set_input
      pk_columns: templates_pk_columns_input!
    ): templates

    # update data of the table: "timetickets"
    update_timetickets(
      # increments the integer columns with given value of the filtered values
      _inc: timetickets_inc_input

      # sets the columns of the filtered rows to the given values
      _set: timetickets_set_input

      # filter the rows which have to be updated
      where: timetickets_bool_exp!
    ): timetickets_mutation_response

    # update single row of the table: "timetickets"
    update_timetickets_by_pk(
      # increments the integer columns with given value of the filtered values
      _inc: timetickets_inc_input

      # sets the columns of the filtered rows to the given values
      _set: timetickets_set_input
      pk_columns: timetickets_pk_columns_input!
    ): timetickets

    # update data of the table: "users"
    update_users(
      # append existing jsonb value of filtered columns with new jsonb value
      _append: users_append_input

      # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
      _delete_at_path: users_delete_at_path_input

      # delete the array element with specified index (negative integers count from
      # the end). throws an error if top level container is not an array
      _delete_elem: users_delete_elem_input

      # delete key/value pair or string element. key/value pairs are matched based on their key value
      _delete_key: users_delete_key_input

      # prepend existing jsonb value of filtered columns with new jsonb value
      _prepend: users_prepend_input

      # sets the columns of the filtered rows to the given values
      _set: users_set_input

      # filter the rows which have to be updated
      where: users_bool_exp!
    ): users_mutation_response

    # update single row of the table: "users"
    update_users_by_pk(
      # append existing jsonb value of filtered columns with new jsonb value
      _append: users_append_input

      # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
      _delete_at_path: users_delete_at_path_input

      # delete the array element with specified index (negative integers count from
      # the end). throws an error if top level container is not an array
      _delete_elem: users_delete_elem_input

      # delete key/value pair or string element. key/value pairs are matched based on their key value
      _delete_key: users_delete_key_input

      # prepend existing jsonb value of filtered columns with new jsonb value
      _prepend: users_prepend_input

      # sets the columns of the filtered rows to the given values
      _set: users_set_input
      pk_columns: users_pk_columns_input!
    ): users

    # update data of the table: "vehicles"
    update_vehicles(
      # append existing jsonb value of filtered columns with new jsonb value
      _append: vehicles_append_input

      # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
      _delete_at_path: vehicles_delete_at_path_input

      # delete the array element with specified index (negative integers count from
      # the end). throws an error if top level container is not an array
      _delete_elem: vehicles_delete_elem_input

      # delete key/value pair or string element. key/value pairs are matched based on their key value
      _delete_key: vehicles_delete_key_input

      # prepend existing jsonb value of filtered columns with new jsonb value
      _prepend: vehicles_prepend_input

      # sets the columns of the filtered rows to the given values
      _set: vehicles_set_input

      # filter the rows which have to be updated
      where: vehicles_bool_exp!
    ): vehicles_mutation_response

    # update single row of the table: "vehicles"
    update_vehicles_by_pk(
      # append existing jsonb value of filtered columns with new jsonb value
      _append: vehicles_append_input

      # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
      _delete_at_path: vehicles_delete_at_path_input

      # delete the array element with specified index (negative integers count from
      # the end). throws an error if top level container is not an array
      _delete_elem: vehicles_delete_elem_input

      # delete key/value pair or string element. key/value pairs are matched based on their key value
      _delete_key: vehicles_delete_key_input

      # prepend existing jsonb value of filtered columns with new jsonb value
      _prepend: vehicles_prepend_input

      # sets the columns of the filtered rows to the given values
      _set: vehicles_set_input
      pk_columns: vehicles_pk_columns_input!
    ): vehicles

    # update data of the table: "vendors"
    update_vendors(
      # append existing jsonb value of filtered columns with new jsonb value
      _append: vendors_append_input

      # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
      _delete_at_path: vendors_delete_at_path_input

      # delete the array element with specified index (negative integers count from
      # the end). throws an error if top level container is not an array
      _delete_elem: vendors_delete_elem_input

      # delete key/value pair or string element. key/value pairs are matched based on their key value
      _delete_key: vendors_delete_key_input

      # increments the integer columns with given value of the filtered values
      _inc: vendors_inc_input

      # prepend existing jsonb value of filtered columns with new jsonb value
      _prepend: vendors_prepend_input

      # sets the columns of the filtered rows to the given values
      _set: vendors_set_input

      # filter the rows which have to be updated
      where: vendors_bool_exp!
    ): vendors_mutation_response

    # update single row of the table: "vendors"
    update_vendors_by_pk(
      # append existing jsonb value of filtered columns with new jsonb value
      _append: vendors_append_input

      # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
      _delete_at_path: vendors_delete_at_path_input

      # delete the array element with specified index (negative integers count from
      # the end). throws an error if top level container is not an array
      _delete_elem: vendors_delete_elem_input

      # delete key/value pair or string element. key/value pairs are matched based on their key value
      _delete_key: vendors_delete_key_input

      # increments the integer columns with given value of the filtered values
      _inc: vendors_inc_input

      # prepend existing jsonb value of filtered columns with new jsonb value
      _prepend: vendors_prepend_input

      # sets the columns of the filtered rows to the given values
      _set: vendors_set_input
      pk_columns: vendors_pk_columns_input!
    ): vendors
  }

  # columns and relationships of "notes"
  type notes {
    created_at: timestamptz!
    created_by: String!
    critical: Boolean!
    id: uuid!

    # An object relationship
    job: jobs!
    jobid: uuid!
    private: Boolean!
    text: String
    updated_at: timestamptz!

    # An object relationship
    user: users!
  }

  # aggregated selection of "notes"
  type notes_aggregate {
    aggregate: notes_aggregate_fields
    nodes: [notes!]!
  }

  # aggregate fields of "notes"
  type notes_aggregate_fields {
    count(columns: [notes_select_column!], distinct: Boolean): Int
    max: notes_max_fields
    min: notes_min_fields
  }

  # order by aggregate values of table "notes"
  input notes_aggregate_order_by {
    count: order_by
    max: notes_max_order_by
    min: notes_min_order_by
  }

  # input type for inserting array relation for remote table "notes"
  input notes_arr_rel_insert_input {
    data: [notes_insert_input!]!
    on_conflict: notes_on_conflict
  }

  # Boolean expression to filter rows from the table "notes". All fields are combined with a logical 'AND'.
  input notes_bool_exp {
    _and: [notes_bool_exp]
    _not: notes_bool_exp
    _or: [notes_bool_exp]
    created_at: timestamptz_comparison_exp
    created_by: String_comparison_exp
    critical: Boolean_comparison_exp
    id: uuid_comparison_exp
    job: jobs_bool_exp
    jobid: uuid_comparison_exp
    private: Boolean_comparison_exp
    text: String_comparison_exp
    updated_at: timestamptz_comparison_exp
    user: users_bool_exp
  }

  # unique or primary key constraints on table "notes"
  enum notes_constraint {
    # unique or primary key constraint
    notes_pkey
  }

  # input type for inserting data into table "notes"
  input notes_insert_input {
    created_at: timestamptz
    created_by: String
    critical: Boolean
    id: uuid
    job: jobs_obj_rel_insert_input
    jobid: uuid
    private: Boolean
    text: String
    updated_at: timestamptz
    user: users_obj_rel_insert_input
  }

  # aggregate max on columns
  type notes_max_fields {
    created_at: timestamptz
    created_by: String
    id: uuid
    jobid: uuid
    text: String
    updated_at: timestamptz
  }

  # order by max() on columns of table "notes"
  input notes_max_order_by {
    created_at: order_by
    created_by: order_by
    id: order_by
    jobid: order_by
    text: order_by
    updated_at: order_by
  }

  # aggregate min on columns
  type notes_min_fields {
    created_at: timestamptz
    created_by: String
    id: uuid
    jobid: uuid
    text: String
    updated_at: timestamptz
  }

  # order by min() on columns of table "notes"
  input notes_min_order_by {
    created_at: order_by
    created_by: order_by
    id: order_by
    jobid: order_by
    text: order_by
    updated_at: order_by
  }

  # response of any mutation on the table "notes"
  type notes_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [notes!]!
  }

  # input type for inserting object relation for remote table "notes"
  input notes_obj_rel_insert_input {
    data: notes_insert_input!
    on_conflict: notes_on_conflict
  }

  # on conflict condition type for table "notes"
  input notes_on_conflict {
    constraint: notes_constraint!
    update_columns: [notes_update_column!]!
    where: notes_bool_exp
  }

  # ordering options when selecting data from "notes"
  input notes_order_by {
    created_at: order_by
    created_by: order_by
    critical: order_by
    id: order_by
    job: jobs_order_by
    jobid: order_by
    private: order_by
    text: order_by
    updated_at: order_by
    user: users_order_by
  }

  # primary key columns input for table: "notes"
  input notes_pk_columns_input {
    id: uuid!
  }

  # select columns of table "notes"
  enum notes_select_column {
    # column name
    created_at

    # column name
    created_by

    # column name
    critical

    # column name
    id

    # column name
    jobid

    # column name
    private

    # column name
    text

    # column name
    updated_at
  }

  # input type for updating data in table "notes"
  input notes_set_input {
    created_at: timestamptz
    created_by: String
    critical: Boolean
    id: uuid
    jobid: uuid
    private: Boolean
    text: String
    updated_at: timestamptz
  }

  # update columns of table "notes"
  enum notes_update_column {
    # column name
    created_at

    # column name
    created_by

    # column name
    critical

    # column name
    id

    # column name
    jobid

    # column name
    private

    # column name
    text

    # column name
    updated_at
  }

  scalar numeric

  # expression to compare columns of type numeric. All fields are combined with logical 'AND'.
  input numeric_comparison_exp {
    _eq: numeric
    _gt: numeric
    _gte: numeric
    _in: [numeric!]
    _is_null: Boolean
    _lt: numeric
    _lte: numeric
    _neq: numeric
    _nin: [numeric!]
  }

  # column ordering options
  enum order_by {
    # in the ascending order, nulls last
    asc

    # in the ascending order, nulls first
    asc_nulls_first

    # in the ascending order, nulls last
    asc_nulls_last

    # in the descending order, nulls first
    desc

    # in the descending order, nulls first
    desc_nulls_first

    # in the descending order, nulls last
    desc_nulls_last
  }

  # columns and relationships of "owners"
  type owners {
    accountingid: bigint!
    allow_text_message: Boolean!

    # An object relationship
    bodyshop: bodyshops!
    created_at: timestamptz!
    id: uuid!

    # An array relationship
    jobs(
      # distinct select on columns
      distinct_on: [jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [jobs_order_by!]

      # filter the rows returned
      where: jobs_bool_exp
    ): [jobs!]!

    # An aggregated array relationship
    jobs_aggregate(
      # distinct select on columns
      distinct_on: [jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [jobs_order_by!]

      # filter the rows returned
      where: jobs_bool_exp
    ): jobs_aggregate!
    ownr_addr1: String
    ownr_addr2: String
    ownr_city: String
    ownr_co_nm: String
    ownr_ctry: String
    ownr_ea: String
    ownr_fn: String
    ownr_ln: String
    ownr_ph1: String
    ownr_ph2: String
    ownr_st: String
    ownr_title: String
    ownr_zip: String
    preferred_contact: String
    shopid: uuid!
    updated_at: timestamptz!
  }

  # aggregated selection of "owners"
  type owners_aggregate {
    aggregate: owners_aggregate_fields
    nodes: [owners!]!
  }

  # aggregate fields of "owners"
  type owners_aggregate_fields {
    avg: owners_avg_fields
    count(columns: [owners_select_column!], distinct: Boolean): Int
    max: owners_max_fields
    min: owners_min_fields
    stddev: owners_stddev_fields
    stddev_pop: owners_stddev_pop_fields
    stddev_samp: owners_stddev_samp_fields
    sum: owners_sum_fields
    var_pop: owners_var_pop_fields
    var_samp: owners_var_samp_fields
    variance: owners_variance_fields
  }

  # order by aggregate values of table "owners"
  input owners_aggregate_order_by {
    avg: owners_avg_order_by
    count: order_by
    max: owners_max_order_by
    min: owners_min_order_by
    stddev: owners_stddev_order_by
    stddev_pop: owners_stddev_pop_order_by
    stddev_samp: owners_stddev_samp_order_by
    sum: owners_sum_order_by
    var_pop: owners_var_pop_order_by
    var_samp: owners_var_samp_order_by
    variance: owners_variance_order_by
  }

  # input type for inserting array relation for remote table "owners"
  input owners_arr_rel_insert_input {
    data: [owners_insert_input!]!
    on_conflict: owners_on_conflict
  }

  # aggregate avg on columns
  type owners_avg_fields {
    accountingid: Float
  }

  # order by avg() on columns of table "owners"
  input owners_avg_order_by {
    accountingid: order_by
  }

  # Boolean expression to filter rows from the table "owners". All fields are combined with a logical 'AND'.
  input owners_bool_exp {
    _and: [owners_bool_exp]
    _not: owners_bool_exp
    _or: [owners_bool_exp]
    accountingid: bigint_comparison_exp
    allow_text_message: Boolean_comparison_exp
    bodyshop: bodyshops_bool_exp
    created_at: timestamptz_comparison_exp
    id: uuid_comparison_exp
    jobs: jobs_bool_exp
    ownr_addr1: String_comparison_exp
    ownr_addr2: String_comparison_exp
    ownr_city: String_comparison_exp
    ownr_co_nm: String_comparison_exp
    ownr_ctry: String_comparison_exp
    ownr_ea: String_comparison_exp
    ownr_fn: String_comparison_exp
    ownr_ln: String_comparison_exp
    ownr_ph1: String_comparison_exp
    ownr_ph2: String_comparison_exp
    ownr_st: String_comparison_exp
    ownr_title: String_comparison_exp
    ownr_zip: String_comparison_exp
    preferred_contact: String_comparison_exp
    shopid: uuid_comparison_exp
    updated_at: timestamptz_comparison_exp
  }

  # unique or primary key constraints on table "owners"
  enum owners_constraint {
    # unique or primary key constraint
    owners_pkey
  }

  # input type for incrementing integer column in table "owners"
  input owners_inc_input {
    accountingid: bigint
  }

  # input type for inserting data into table "owners"
  input owners_insert_input {
    accountingid: bigint
    allow_text_message: Boolean
    bodyshop: bodyshops_obj_rel_insert_input
    created_at: timestamptz
    id: uuid
    jobs: jobs_arr_rel_insert_input
    ownr_addr1: String
    ownr_addr2: String
    ownr_city: String
    ownr_co_nm: String
    ownr_ctry: String
    ownr_ea: String
    ownr_fn: String
    ownr_ln: String
    ownr_ph1: String
    ownr_ph2: String
    ownr_st: String
    ownr_title: String
    ownr_zip: String
    preferred_contact: String
    shopid: uuid
    updated_at: timestamptz
  }

  # aggregate max on columns
  type owners_max_fields {
    accountingid: bigint
    created_at: timestamptz
    id: uuid
    ownr_addr1: String
    ownr_addr2: String
    ownr_city: String
    ownr_co_nm: String
    ownr_ctry: String
    ownr_ea: String
    ownr_fn: String
    ownr_ln: String
    ownr_ph1: String
    ownr_ph2: String
    ownr_st: String
    ownr_title: String
    ownr_zip: String
    preferred_contact: String
    shopid: uuid
    updated_at: timestamptz
  }

  # order by max() on columns of table "owners"
  input owners_max_order_by {
    accountingid: order_by
    created_at: order_by
    id: order_by
    ownr_addr1: order_by
    ownr_addr2: order_by
    ownr_city: order_by
    ownr_co_nm: order_by
    ownr_ctry: order_by
    ownr_ea: order_by
    ownr_fn: order_by
    ownr_ln: order_by
    ownr_ph1: order_by
    ownr_ph2: order_by
    ownr_st: order_by
    ownr_title: order_by
    ownr_zip: order_by
    preferred_contact: order_by
    shopid: order_by
    updated_at: order_by
  }

  # aggregate min on columns
  type owners_min_fields {
    accountingid: bigint
    created_at: timestamptz
    id: uuid
    ownr_addr1: String
    ownr_addr2: String
    ownr_city: String
    ownr_co_nm: String
    ownr_ctry: String
    ownr_ea: String
    ownr_fn: String
    ownr_ln: String
    ownr_ph1: String
    ownr_ph2: String
    ownr_st: String
    ownr_title: String
    ownr_zip: String
    preferred_contact: String
    shopid: uuid
    updated_at: timestamptz
  }

  # order by min() on columns of table "owners"
  input owners_min_order_by {
    accountingid: order_by
    created_at: order_by
    id: order_by
    ownr_addr1: order_by
    ownr_addr2: order_by
    ownr_city: order_by
    ownr_co_nm: order_by
    ownr_ctry: order_by
    ownr_ea: order_by
    ownr_fn: order_by
    ownr_ln: order_by
    ownr_ph1: order_by
    ownr_ph2: order_by
    ownr_st: order_by
    ownr_title: order_by
    ownr_zip: order_by
    preferred_contact: order_by
    shopid: order_by
    updated_at: order_by
  }

  # response of any mutation on the table "owners"
  type owners_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [owners!]!
  }

  # input type for inserting object relation for remote table "owners"
  input owners_obj_rel_insert_input {
    data: owners_insert_input!
    on_conflict: owners_on_conflict
  }

  # on conflict condition type for table "owners"
  input owners_on_conflict {
    constraint: owners_constraint!
    update_columns: [owners_update_column!]!
    where: owners_bool_exp
  }

  # ordering options when selecting data from "owners"
  input owners_order_by {
    accountingid: order_by
    allow_text_message: order_by
    bodyshop: bodyshops_order_by
    created_at: order_by
    id: order_by
    jobs_aggregate: jobs_aggregate_order_by
    ownr_addr1: order_by
    ownr_addr2: order_by
    ownr_city: order_by
    ownr_co_nm: order_by
    ownr_ctry: order_by
    ownr_ea: order_by
    ownr_fn: order_by
    ownr_ln: order_by
    ownr_ph1: order_by
    ownr_ph2: order_by
    ownr_st: order_by
    ownr_title: order_by
    ownr_zip: order_by
    preferred_contact: order_by
    shopid: order_by
    updated_at: order_by
  }

  # primary key columns input for table: "owners"
  input owners_pk_columns_input {
    id: uuid!
  }

  # select columns of table "owners"
  enum owners_select_column {
    # column name
    accountingid

    # column name
    allow_text_message

    # column name
    created_at

    # column name
    id

    # column name
    ownr_addr1

    # column name
    ownr_addr2

    # column name
    ownr_city

    # column name
    ownr_co_nm

    # column name
    ownr_ctry

    # column name
    ownr_ea

    # column name
    ownr_fn

    # column name
    ownr_ln

    # column name
    ownr_ph1

    # column name
    ownr_ph2

    # column name
    ownr_st

    # column name
    ownr_title

    # column name
    ownr_zip

    # column name
    preferred_contact

    # column name
    shopid

    # column name
    updated_at
  }

  # input type for updating data in table "owners"
  input owners_set_input {
    accountingid: bigint
    allow_text_message: Boolean
    created_at: timestamptz
    id: uuid
    ownr_addr1: String
    ownr_addr2: String
    ownr_city: String
    ownr_co_nm: String
    ownr_ctry: String
    ownr_ea: String
    ownr_fn: String
    ownr_ln: String
    ownr_ph1: String
    ownr_ph2: String
    ownr_st: String
    ownr_title: String
    ownr_zip: String
    preferred_contact: String
    shopid: uuid
    updated_at: timestamptz
  }

  # aggregate stddev on columns
  type owners_stddev_fields {
    accountingid: Float
  }

  # order by stddev() on columns of table "owners"
  input owners_stddev_order_by {
    accountingid: order_by
  }

  # aggregate stddev_pop on columns
  type owners_stddev_pop_fields {
    accountingid: Float
  }

  # order by stddev_pop() on columns of table "owners"
  input owners_stddev_pop_order_by {
    accountingid: order_by
  }

  # aggregate stddev_samp on columns
  type owners_stddev_samp_fields {
    accountingid: Float
  }

  # order by stddev_samp() on columns of table "owners"
  input owners_stddev_samp_order_by {
    accountingid: order_by
  }

  # aggregate sum on columns
  type owners_sum_fields {
    accountingid: bigint
  }

  # order by sum() on columns of table "owners"
  input owners_sum_order_by {
    accountingid: order_by
  }

  # update columns of table "owners"
  enum owners_update_column {
    # column name
    accountingid

    # column name
    allow_text_message

    # column name
    created_at

    # column name
    id

    # column name
    ownr_addr1

    # column name
    ownr_addr2

    # column name
    ownr_city

    # column name
    ownr_co_nm

    # column name
    ownr_ctry

    # column name
    ownr_ea

    # column name
    ownr_fn

    # column name
    ownr_ln

    # column name
    ownr_ph1

    # column name
    ownr_ph2

    # column name
    ownr_st

    # column name
    ownr_title

    # column name
    ownr_zip

    # column name
    preferred_contact

    # column name
    shopid

    # column name
    updated_at
  }

  # aggregate var_pop on columns
  type owners_var_pop_fields {
    accountingid: Float
  }

  # order by var_pop() on columns of table "owners"
  input owners_var_pop_order_by {
    accountingid: order_by
  }

  # aggregate var_samp on columns
  type owners_var_samp_fields {
    accountingid: Float
  }

  # order by var_samp() on columns of table "owners"
  input owners_var_samp_order_by {
    accountingid: order_by
  }

  # aggregate variance on columns
  type owners_variance_fields {
    accountingid: Float
  }

  # order by variance() on columns of table "owners"
  input owners_variance_order_by {
    accountingid: order_by
  }

  # columns and relationships of "parts_order_lines"
  type parts_order_lines {
    act_price: numeric
    backordered_eta: date
    backordered_on: date
    created_at: timestamptz!
    db_price: numeric
    id: uuid!
    job_line_id: uuid

    # An object relationship
    jobline: joblines
    line_desc: String
    line_remarks: String
    oem_partno: String
    orderid: uuid!

    # An object relationship
    parts_order: parts_orders!
    quantity: numeric!
    status: String!
    updated_at: timestamptz!
  }

  # aggregated selection of "parts_order_lines"
  type parts_order_lines_aggregate {
    aggregate: parts_order_lines_aggregate_fields
    nodes: [parts_order_lines!]!
  }

  # aggregate fields of "parts_order_lines"
  type parts_order_lines_aggregate_fields {
    avg: parts_order_lines_avg_fields
    count(columns: [parts_order_lines_select_column!], distinct: Boolean): Int
    max: parts_order_lines_max_fields
    min: parts_order_lines_min_fields
    stddev: parts_order_lines_stddev_fields
    stddev_pop: parts_order_lines_stddev_pop_fields
    stddev_samp: parts_order_lines_stddev_samp_fields
    sum: parts_order_lines_sum_fields
    var_pop: parts_order_lines_var_pop_fields
    var_samp: parts_order_lines_var_samp_fields
    variance: parts_order_lines_variance_fields
  }

  # order by aggregate values of table "parts_order_lines"
  input parts_order_lines_aggregate_order_by {
    avg: parts_order_lines_avg_order_by
    count: order_by
    max: parts_order_lines_max_order_by
    min: parts_order_lines_min_order_by
    stddev: parts_order_lines_stddev_order_by
    stddev_pop: parts_order_lines_stddev_pop_order_by
    stddev_samp: parts_order_lines_stddev_samp_order_by
    sum: parts_order_lines_sum_order_by
    var_pop: parts_order_lines_var_pop_order_by
    var_samp: parts_order_lines_var_samp_order_by
    variance: parts_order_lines_variance_order_by
  }

  # input type for inserting array relation for remote table "parts_order_lines"
  input parts_order_lines_arr_rel_insert_input {
    data: [parts_order_lines_insert_input!]!
    on_conflict: parts_order_lines_on_conflict
  }

  # aggregate avg on columns
  type parts_order_lines_avg_fields {
    act_price: Float
    db_price: Float
    quantity: Float
  }

  # order by avg() on columns of table "parts_order_lines"
  input parts_order_lines_avg_order_by {
    act_price: order_by
    db_price: order_by
    quantity: order_by
  }

  # Boolean expression to filter rows from the table "parts_order_lines". All fields are combined with a logical 'AND'.
  input parts_order_lines_bool_exp {
    _and: [parts_order_lines_bool_exp]
    _not: parts_order_lines_bool_exp
    _or: [parts_order_lines_bool_exp]
    act_price: numeric_comparison_exp
    backordered_eta: date_comparison_exp
    backordered_on: date_comparison_exp
    created_at: timestamptz_comparison_exp
    db_price: numeric_comparison_exp
    id: uuid_comparison_exp
    job_line_id: uuid_comparison_exp
    jobline: joblines_bool_exp
    line_desc: String_comparison_exp
    line_remarks: String_comparison_exp
    oem_partno: String_comparison_exp
    orderid: uuid_comparison_exp
    parts_order: parts_orders_bool_exp
    quantity: numeric_comparison_exp
    status: String_comparison_exp
    updated_at: timestamptz_comparison_exp
  }

  # unique or primary key constraints on table "parts_order_lines"
  enum parts_order_lines_constraint {
    # unique or primary key constraint
    parts_order_lines_pkey
  }

  # input type for incrementing integer column in table "parts_order_lines"
  input parts_order_lines_inc_input {
    act_price: numeric
    db_price: numeric
    quantity: numeric
  }

  # input type for inserting data into table "parts_order_lines"
  input parts_order_lines_insert_input {
    act_price: numeric
    backordered_eta: date
    backordered_on: date
    created_at: timestamptz
    db_price: numeric
    id: uuid
    job_line_id: uuid
    jobline: joblines_obj_rel_insert_input
    line_desc: String
    line_remarks: String
    oem_partno: String
    orderid: uuid
    parts_order: parts_orders_obj_rel_insert_input
    quantity: numeric
    status: String
    updated_at: timestamptz
  }

  # aggregate max on columns
  type parts_order_lines_max_fields {
    act_price: numeric
    backordered_eta: date
    backordered_on: date
    created_at: timestamptz
    db_price: numeric
    id: uuid
    job_line_id: uuid
    line_desc: String
    line_remarks: String
    oem_partno: String
    orderid: uuid
    quantity: numeric
    status: String
    updated_at: timestamptz
  }

  # order by max() on columns of table "parts_order_lines"
  input parts_order_lines_max_order_by {
    act_price: order_by
    backordered_eta: order_by
    backordered_on: order_by
    created_at: order_by
    db_price: order_by
    id: order_by
    job_line_id: order_by
    line_desc: order_by
    line_remarks: order_by
    oem_partno: order_by
    orderid: order_by
    quantity: order_by
    status: order_by
    updated_at: order_by
  }

  # aggregate min on columns
  type parts_order_lines_min_fields {
    act_price: numeric
    backordered_eta: date
    backordered_on: date
    created_at: timestamptz
    db_price: numeric
    id: uuid
    job_line_id: uuid
    line_desc: String
    line_remarks: String
    oem_partno: String
    orderid: uuid
    quantity: numeric
    status: String
    updated_at: timestamptz
  }

  # order by min() on columns of table "parts_order_lines"
  input parts_order_lines_min_order_by {
    act_price: order_by
    backordered_eta: order_by
    backordered_on: order_by
    created_at: order_by
    db_price: order_by
    id: order_by
    job_line_id: order_by
    line_desc: order_by
    line_remarks: order_by
    oem_partno: order_by
    orderid: order_by
    quantity: order_by
    status: order_by
    updated_at: order_by
  }

  # response of any mutation on the table "parts_order_lines"
  type parts_order_lines_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [parts_order_lines!]!
  }

  # input type for inserting object relation for remote table "parts_order_lines"
  input parts_order_lines_obj_rel_insert_input {
    data: parts_order_lines_insert_input!
    on_conflict: parts_order_lines_on_conflict
  }

  # on conflict condition type for table "parts_order_lines"
  input parts_order_lines_on_conflict {
    constraint: parts_order_lines_constraint!
    update_columns: [parts_order_lines_update_column!]!
    where: parts_order_lines_bool_exp
  }

  # ordering options when selecting data from "parts_order_lines"
  input parts_order_lines_order_by {
    act_price: order_by
    backordered_eta: order_by
    backordered_on: order_by
    created_at: order_by
    db_price: order_by
    id: order_by
    job_line_id: order_by
    jobline: joblines_order_by
    line_desc: order_by
    line_remarks: order_by
    oem_partno: order_by
    orderid: order_by
    parts_order: parts_orders_order_by
    quantity: order_by
    status: order_by
    updated_at: order_by
  }

  # primary key columns input for table: "parts_order_lines"
  input parts_order_lines_pk_columns_input {
    id: uuid!
  }

  # select columns of table "parts_order_lines"
  enum parts_order_lines_select_column {
    # column name
    act_price

    # column name
    backordered_eta

    # column name
    backordered_on

    # column name
    created_at

    # column name
    db_price

    # column name
    id

    # column name
    job_line_id

    # column name
    line_desc

    # column name
    line_remarks

    # column name
    oem_partno

    # column name
    orderid

    # column name
    quantity

    # column name
    status

    # column name
    updated_at
  }

  # input type for updating data in table "parts_order_lines"
  input parts_order_lines_set_input {
    act_price: numeric
    backordered_eta: date
    backordered_on: date
    created_at: timestamptz
    db_price: numeric
    id: uuid
    job_line_id: uuid
    line_desc: String
    line_remarks: String
    oem_partno: String
    orderid: uuid
    quantity: numeric
    status: String
    updated_at: timestamptz
  }

  # aggregate stddev on columns
  type parts_order_lines_stddev_fields {
    act_price: Float
    db_price: Float
    quantity: Float
  }

  # order by stddev() on columns of table "parts_order_lines"
  input parts_order_lines_stddev_order_by {
    act_price: order_by
    db_price: order_by
    quantity: order_by
  }

  # aggregate stddev_pop on columns
  type parts_order_lines_stddev_pop_fields {
    act_price: Float
    db_price: Float
    quantity: Float
  }

  # order by stddev_pop() on columns of table "parts_order_lines"
  input parts_order_lines_stddev_pop_order_by {
    act_price: order_by
    db_price: order_by
    quantity: order_by
  }

  # aggregate stddev_samp on columns
  type parts_order_lines_stddev_samp_fields {
    act_price: Float
    db_price: Float
    quantity: Float
  }

  # order by stddev_samp() on columns of table "parts_order_lines"
  input parts_order_lines_stddev_samp_order_by {
    act_price: order_by
    db_price: order_by
    quantity: order_by
  }

  # aggregate sum on columns
  type parts_order_lines_sum_fields {
    act_price: numeric
    db_price: numeric
    quantity: numeric
  }

  # order by sum() on columns of table "parts_order_lines"
  input parts_order_lines_sum_order_by {
    act_price: order_by
    db_price: order_by
    quantity: order_by
  }

  # update columns of table "parts_order_lines"
  enum parts_order_lines_update_column {
    # column name
    act_price

    # column name
    backordered_eta

    # column name
    backordered_on

    # column name
    created_at

    # column name
    db_price

    # column name
    id

    # column name
    job_line_id

    # column name
    line_desc

    # column name
    line_remarks

    # column name
    oem_partno

    # column name
    orderid

    # column name
    quantity

    # column name
    status

    # column name
    updated_at
  }

  # aggregate var_pop on columns
  type parts_order_lines_var_pop_fields {
    act_price: Float
    db_price: Float
    quantity: Float
  }

  # order by var_pop() on columns of table "parts_order_lines"
  input parts_order_lines_var_pop_order_by {
    act_price: order_by
    db_price: order_by
    quantity: order_by
  }

  # aggregate var_samp on columns
  type parts_order_lines_var_samp_fields {
    act_price: Float
    db_price: Float
    quantity: Float
  }

  # order by var_samp() on columns of table "parts_order_lines"
  input parts_order_lines_var_samp_order_by {
    act_price: order_by
    db_price: order_by
    quantity: order_by
  }

  # aggregate variance on columns
  type parts_order_lines_variance_fields {
    act_price: Float
    db_price: Float
    quantity: Float
  }

  # order by variance() on columns of table "parts_order_lines"
  input parts_order_lines_variance_order_by {
    act_price: order_by
    db_price: order_by
    quantity: order_by
  }

  # columns and relationships of "parts_orders"
  type parts_orders {
    created_at: timestamptz!
    deliver_by: date
    id: uuid!

    # An object relationship
    invoice: invoices

    # An object relationship
    job: jobs!
    jobid: uuid!
    order_date: date!
    order_number: Int!

    # An array relationship
    parts_order_lines(
      # distinct select on columns
      distinct_on: [parts_order_lines_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [parts_order_lines_order_by!]

      # filter the rows returned
      where: parts_order_lines_bool_exp
    ): [parts_order_lines!]!

    # An aggregated array relationship
    parts_order_lines_aggregate(
      # distinct select on columns
      distinct_on: [parts_order_lines_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [parts_order_lines_order_by!]

      # filter the rows returned
      where: parts_order_lines_bool_exp
    ): parts_order_lines_aggregate!
    return: Boolean!
    returnfrominvoice: uuid
    status: String!
    updated_at: timestamptz!

    # An object relationship
    user: users!
    user_email: String!

    # An object relationship
    vendor: vendors!
    vendorid: uuid!
  }

  # aggregated selection of "parts_orders"
  type parts_orders_aggregate {
    aggregate: parts_orders_aggregate_fields
    nodes: [parts_orders!]!
  }

  # aggregate fields of "parts_orders"
  type parts_orders_aggregate_fields {
    avg: parts_orders_avg_fields
    count(columns: [parts_orders_select_column!], distinct: Boolean): Int
    max: parts_orders_max_fields
    min: parts_orders_min_fields
    stddev: parts_orders_stddev_fields
    stddev_pop: parts_orders_stddev_pop_fields
    stddev_samp: parts_orders_stddev_samp_fields
    sum: parts_orders_sum_fields
    var_pop: parts_orders_var_pop_fields
    var_samp: parts_orders_var_samp_fields
    variance: parts_orders_variance_fields
  }

  # order by aggregate values of table "parts_orders"
  input parts_orders_aggregate_order_by {
    avg: parts_orders_avg_order_by
    count: order_by
    max: parts_orders_max_order_by
    min: parts_orders_min_order_by
    stddev: parts_orders_stddev_order_by
    stddev_pop: parts_orders_stddev_pop_order_by
    stddev_samp: parts_orders_stddev_samp_order_by
    sum: parts_orders_sum_order_by
    var_pop: parts_orders_var_pop_order_by
    var_samp: parts_orders_var_samp_order_by
    variance: parts_orders_variance_order_by
  }

  # input type for inserting array relation for remote table "parts_orders"
  input parts_orders_arr_rel_insert_input {
    data: [parts_orders_insert_input!]!
    on_conflict: parts_orders_on_conflict
  }

  # aggregate avg on columns
  type parts_orders_avg_fields {
    order_number: Float
  }

  # order by avg() on columns of table "parts_orders"
  input parts_orders_avg_order_by {
    order_number: order_by
  }

  # Boolean expression to filter rows from the table "parts_orders". All fields are combined with a logical 'AND'.
  input parts_orders_bool_exp {
    _and: [parts_orders_bool_exp]
    _not: parts_orders_bool_exp
    _or: [parts_orders_bool_exp]
    created_at: timestamptz_comparison_exp
    deliver_by: date_comparison_exp
    id: uuid_comparison_exp
    invoice: invoices_bool_exp
    job: jobs_bool_exp
    jobid: uuid_comparison_exp
    order_date: date_comparison_exp
    order_number: Int_comparison_exp
    parts_order_lines: parts_order_lines_bool_exp
    return: Boolean_comparison_exp
    returnfrominvoice: uuid_comparison_exp
    status: String_comparison_exp
    updated_at: timestamptz_comparison_exp
    user: users_bool_exp
    user_email: String_comparison_exp
    vendor: vendors_bool_exp
    vendorid: uuid_comparison_exp
  }

  # unique or primary key constraints on table "parts_orders"
  enum parts_orders_constraint {
    # unique or primary key constraint
    parts_order_pkey
  }

  # input type for incrementing integer column in table "parts_orders"
  input parts_orders_inc_input {
    order_number: Int
  }

  # input type for inserting data into table "parts_orders"
  input parts_orders_insert_input {
    created_at: timestamptz
    deliver_by: date
    id: uuid
    invoice: invoices_obj_rel_insert_input
    job: jobs_obj_rel_insert_input
    jobid: uuid
    order_date: date
    order_number: Int
    parts_order_lines: parts_order_lines_arr_rel_insert_input
    return: Boolean
    returnfrominvoice: uuid
    status: String
    updated_at: timestamptz
    user: users_obj_rel_insert_input
    user_email: String
    vendor: vendors_obj_rel_insert_input
    vendorid: uuid
  }

  # aggregate max on columns
  type parts_orders_max_fields {
    created_at: timestamptz
    deliver_by: date
    id: uuid
    jobid: uuid
    order_date: date
    order_number: Int
    returnfrominvoice: uuid
    status: String
    updated_at: timestamptz
    user_email: String
    vendorid: uuid
  }

  # order by max() on columns of table "parts_orders"
  input parts_orders_max_order_by {
    created_at: order_by
    deliver_by: order_by
    id: order_by
    jobid: order_by
    order_date: order_by
    order_number: order_by
    returnfrominvoice: order_by
    status: order_by
    updated_at: order_by
    user_email: order_by
    vendorid: order_by
  }

  # aggregate min on columns
  type parts_orders_min_fields {
    created_at: timestamptz
    deliver_by: date
    id: uuid
    jobid: uuid
    order_date: date
    order_number: Int
    returnfrominvoice: uuid
    status: String
    updated_at: timestamptz
    user_email: String
    vendorid: uuid
  }

  # order by min() on columns of table "parts_orders"
  input parts_orders_min_order_by {
    created_at: order_by
    deliver_by: order_by
    id: order_by
    jobid: order_by
    order_date: order_by
    order_number: order_by
    returnfrominvoice: order_by
    status: order_by
    updated_at: order_by
    user_email: order_by
    vendorid: order_by
  }

  # response of any mutation on the table "parts_orders"
  type parts_orders_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [parts_orders!]!
  }

  # input type for inserting object relation for remote table "parts_orders"
  input parts_orders_obj_rel_insert_input {
    data: parts_orders_insert_input!
    on_conflict: parts_orders_on_conflict
  }

  # on conflict condition type for table "parts_orders"
  input parts_orders_on_conflict {
    constraint: parts_orders_constraint!
    update_columns: [parts_orders_update_column!]!
    where: parts_orders_bool_exp
  }

  # ordering options when selecting data from "parts_orders"
  input parts_orders_order_by {
    created_at: order_by
    deliver_by: order_by
    id: order_by
    invoice: invoices_order_by
    job: jobs_order_by
    jobid: order_by
    order_date: order_by
    order_number: order_by
    parts_order_lines_aggregate: parts_order_lines_aggregate_order_by
    return: order_by
    returnfrominvoice: order_by
    status: order_by
    updated_at: order_by
    user: users_order_by
    user_email: order_by
    vendor: vendors_order_by
    vendorid: order_by
  }

  # primary key columns input for table: "parts_orders"
  input parts_orders_pk_columns_input {
    id: uuid!
  }

  # select columns of table "parts_orders"
  enum parts_orders_select_column {
    # column name
    created_at

    # column name
    deliver_by

    # column name
    id

    # column name
    jobid

    # column name
    order_date

    # column name
    order_number

    # column name
    return

    # column name
    returnfrominvoice

    # column name
    status

    # column name
    updated_at

    # column name
    user_email

    # column name
    vendorid
  }

  # input type for updating data in table "parts_orders"
  input parts_orders_set_input {
    created_at: timestamptz
    deliver_by: date
    id: uuid
    jobid: uuid
    order_date: date
    order_number: Int
    return: Boolean
    returnfrominvoice: uuid
    status: String
    updated_at: timestamptz
    user_email: String
    vendorid: uuid
  }

  # aggregate stddev on columns
  type parts_orders_stddev_fields {
    order_number: Float
  }

  # order by stddev() on columns of table "parts_orders"
  input parts_orders_stddev_order_by {
    order_number: order_by
  }

  # aggregate stddev_pop on columns
  type parts_orders_stddev_pop_fields {
    order_number: Float
  }

  # order by stddev_pop() on columns of table "parts_orders"
  input parts_orders_stddev_pop_order_by {
    order_number: order_by
  }

  # aggregate stddev_samp on columns
  type parts_orders_stddev_samp_fields {
    order_number: Float
  }

  # order by stddev_samp() on columns of table "parts_orders"
  input parts_orders_stddev_samp_order_by {
    order_number: order_by
  }

  # aggregate sum on columns
  type parts_orders_sum_fields {
    order_number: Int
  }

  # order by sum() on columns of table "parts_orders"
  input parts_orders_sum_order_by {
    order_number: order_by
  }

  # update columns of table "parts_orders"
  enum parts_orders_update_column {
    # column name
    created_at

    # column name
    deliver_by

    # column name
    id

    # column name
    jobid

    # column name
    order_date

    # column name
    order_number

    # column name
    return

    # column name
    returnfrominvoice

    # column name
    status

    # column name
    updated_at

    # column name
    user_email

    # column name
    vendorid
  }

  # aggregate var_pop on columns
  type parts_orders_var_pop_fields {
    order_number: Float
  }

  # order by var_pop() on columns of table "parts_orders"
  input parts_orders_var_pop_order_by {
    order_number: order_by
  }

  # aggregate var_samp on columns
  type parts_orders_var_samp_fields {
    order_number: Float
  }

  # order by var_samp() on columns of table "parts_orders"
  input parts_orders_var_samp_order_by {
    order_number: order_by
  }

  # aggregate variance on columns
  type parts_orders_variance_fields {
    order_number: Float
  }

  # order by variance() on columns of table "parts_orders"
  input parts_orders_variance_order_by {
    order_number: order_by
  }

  # columns and relationships of "payments"
  type payments {
    amount: numeric!
    created_at: timestamptz!
    exportedat: timestamptz
    id: uuid!

    # An object relationship
    job: jobs!
    jobid: uuid!
    memo: String
    payer: String
    stripeid: String
    transactionid: String
    type: String
    updated_at: timestamptz!
  }

  # aggregated selection of "payments"
  type payments_aggregate {
    aggregate: payments_aggregate_fields
    nodes: [payments!]!
  }

  # aggregate fields of "payments"
  type payments_aggregate_fields {
    avg: payments_avg_fields
    count(columns: [payments_select_column!], distinct: Boolean): Int
    max: payments_max_fields
    min: payments_min_fields
    stddev: payments_stddev_fields
    stddev_pop: payments_stddev_pop_fields
    stddev_samp: payments_stddev_samp_fields
    sum: payments_sum_fields
    var_pop: payments_var_pop_fields
    var_samp: payments_var_samp_fields
    variance: payments_variance_fields
  }

  # order by aggregate values of table "payments"
  input payments_aggregate_order_by {
    avg: payments_avg_order_by
    count: order_by
    max: payments_max_order_by
    min: payments_min_order_by
    stddev: payments_stddev_order_by
    stddev_pop: payments_stddev_pop_order_by
    stddev_samp: payments_stddev_samp_order_by
    sum: payments_sum_order_by
    var_pop: payments_var_pop_order_by
    var_samp: payments_var_samp_order_by
    variance: payments_variance_order_by
  }

  # input type for inserting array relation for remote table "payments"
  input payments_arr_rel_insert_input {
    data: [payments_insert_input!]!
    on_conflict: payments_on_conflict
  }

  # aggregate avg on columns
  type payments_avg_fields {
    amount: Float
  }

  # order by avg() on columns of table "payments"
  input payments_avg_order_by {
    amount: order_by
  }

  # Boolean expression to filter rows from the table "payments". All fields are combined with a logical 'AND'.
  input payments_bool_exp {
    _and: [payments_bool_exp]
    _not: payments_bool_exp
    _or: [payments_bool_exp]
    amount: numeric_comparison_exp
    created_at: timestamptz_comparison_exp
    exportedat: timestamptz_comparison_exp
    id: uuid_comparison_exp
    job: jobs_bool_exp
    jobid: uuid_comparison_exp
    memo: String_comparison_exp
    payer: String_comparison_exp
    stripeid: String_comparison_exp
    transactionid: String_comparison_exp
    type: String_comparison_exp
    updated_at: timestamptz_comparison_exp
  }

  # unique or primary key constraints on table "payments"
  enum payments_constraint {
    # unique or primary key constraint
    payments_pkey
  }

  # input type for incrementing integer column in table "payments"
  input payments_inc_input {
    amount: numeric
  }

  # input type for inserting data into table "payments"
  input payments_insert_input {
    amount: numeric
    created_at: timestamptz
    exportedat: timestamptz
    id: uuid
    job: jobs_obj_rel_insert_input
    jobid: uuid
    memo: String
    payer: String
    stripeid: String
    transactionid: String
    type: String
    updated_at: timestamptz
  }

  # aggregate max on columns
  type payments_max_fields {
    amount: numeric
    created_at: timestamptz
    exportedat: timestamptz
    id: uuid
    jobid: uuid
    memo: String
    payer: String
    stripeid: String
    transactionid: String
    type: String
    updated_at: timestamptz
  }

  # order by max() on columns of table "payments"
  input payments_max_order_by {
    amount: order_by
    created_at: order_by
    exportedat: order_by
    id: order_by
    jobid: order_by
    memo: order_by
    payer: order_by
    stripeid: order_by
    transactionid: order_by
    type: order_by
    updated_at: order_by
  }

  # aggregate min on columns
  type payments_min_fields {
    amount: numeric
    created_at: timestamptz
    exportedat: timestamptz
    id: uuid
    jobid: uuid
    memo: String
    payer: String
    stripeid: String
    transactionid: String
    type: String
    updated_at: timestamptz
  }

  # order by min() on columns of table "payments"
  input payments_min_order_by {
    amount: order_by
    created_at: order_by
    exportedat: order_by
    id: order_by
    jobid: order_by
    memo: order_by
    payer: order_by
    stripeid: order_by
    transactionid: order_by
    type: order_by
    updated_at: order_by
  }

  # response of any mutation on the table "payments"
  type payments_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [payments!]!
  }

  # input type for inserting object relation for remote table "payments"
  input payments_obj_rel_insert_input {
    data: payments_insert_input!
    on_conflict: payments_on_conflict
  }

  # on conflict condition type for table "payments"
  input payments_on_conflict {
    constraint: payments_constraint!
    update_columns: [payments_update_column!]!
    where: payments_bool_exp
  }

  # ordering options when selecting data from "payments"
  input payments_order_by {
    amount: order_by
    created_at: order_by
    exportedat: order_by
    id: order_by
    job: jobs_order_by
    jobid: order_by
    memo: order_by
    payer: order_by
    stripeid: order_by
    transactionid: order_by
    type: order_by
    updated_at: order_by
  }

  # primary key columns input for table: "payments"
  input payments_pk_columns_input {
    id: uuid!
  }

  # select columns of table "payments"
  enum payments_select_column {
    # column name
    amount

    # column name
    created_at

    # column name
    exportedat

    # column name
    id

    # column name
    jobid

    # column name
    memo

    # column name
    payer

    # column name
    stripeid

    # column name
    transactionid

    # column name
    type

    # column name
    updated_at
  }

  # input type for updating data in table "payments"
  input payments_set_input {
    amount: numeric
    created_at: timestamptz
    exportedat: timestamptz
    id: uuid
    jobid: uuid
    memo: String
    payer: String
    stripeid: String
    transactionid: String
    type: String
    updated_at: timestamptz
  }

  # aggregate stddev on columns
  type payments_stddev_fields {
    amount: Float
  }

  # order by stddev() on columns of table "payments"
  input payments_stddev_order_by {
    amount: order_by
  }

  # aggregate stddev_pop on columns
  type payments_stddev_pop_fields {
    amount: Float
  }

  # order by stddev_pop() on columns of table "payments"
  input payments_stddev_pop_order_by {
    amount: order_by
  }

  # aggregate stddev_samp on columns
  type payments_stddev_samp_fields {
    amount: Float
  }

  # order by stddev_samp() on columns of table "payments"
  input payments_stddev_samp_order_by {
    amount: order_by
  }

  # aggregate sum on columns
  type payments_sum_fields {
    amount: numeric
  }

  # order by sum() on columns of table "payments"
  input payments_sum_order_by {
    amount: order_by
  }

  # update columns of table "payments"
  enum payments_update_column {
    # column name
    amount

    # column name
    created_at

    # column name
    exportedat

    # column name
    id

    # column name
    jobid

    # column name
    memo

    # column name
    payer

    # column name
    stripeid

    # column name
    transactionid

    # column name
    type

    # column name
    updated_at
  }

  # aggregate var_pop on columns
  type payments_var_pop_fields {
    amount: Float
  }

  # order by var_pop() on columns of table "payments"
  input payments_var_pop_order_by {
    amount: order_by
  }

  # aggregate var_samp on columns
  type payments_var_samp_fields {
    amount: Float
  }

  # order by var_samp() on columns of table "payments"
  input payments_var_samp_order_by {
    amount: order_by
  }

  # aggregate variance on columns
  type payments_variance_fields {
    amount: Float
  }

  # order by variance() on columns of table "payments"
  input payments_variance_order_by {
    amount: order_by
  }

  # query root
  type query_root {
    # fetch data from the table: "allocations"
    allocations(
      # distinct select on columns
      distinct_on: [allocations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [allocations_order_by!]

      # filter the rows returned
      where: allocations_bool_exp
    ): [allocations!]!

    # fetch aggregated fields from the table: "allocations"
    allocations_aggregate(
      # distinct select on columns
      distinct_on: [allocations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [allocations_order_by!]

      # filter the rows returned
      where: allocations_bool_exp
    ): allocations_aggregate!

    # fetch data from the table: "allocations" using primary key columns
    allocations_by_pk(id: uuid!): allocations

    # fetch data from the table: "appointments"
    appointments(
      # distinct select on columns
      distinct_on: [appointments_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [appointments_order_by!]

      # filter the rows returned
      where: appointments_bool_exp
    ): [appointments!]!

    # fetch aggregated fields from the table: "appointments"
    appointments_aggregate(
      # distinct select on columns
      distinct_on: [appointments_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [appointments_order_by!]

      # filter the rows returned
      where: appointments_bool_exp
    ): appointments_aggregate!

    # fetch data from the table: "appointments" using primary key columns
    appointments_by_pk(id: uuid!): appointments

    # fetch data from the table: "associations"
    associations(
      # distinct select on columns
      distinct_on: [associations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [associations_order_by!]

      # filter the rows returned
      where: associations_bool_exp
    ): [associations!]!

    # fetch aggregated fields from the table: "associations"
    associations_aggregate(
      # distinct select on columns
      distinct_on: [associations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [associations_order_by!]

      # filter the rows returned
      where: associations_bool_exp
    ): associations_aggregate!

    # fetch data from the table: "associations" using primary key columns
    associations_by_pk(id: uuid!): associations

    # fetch data from the table: "audit_trail"
    audit_trail(
      # distinct select on columns
      distinct_on: [audit_trail_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [audit_trail_order_by!]

      # filter the rows returned
      where: audit_trail_bool_exp
    ): [audit_trail!]!

    # fetch aggregated fields from the table: "audit_trail"
    audit_trail_aggregate(
      # distinct select on columns
      distinct_on: [audit_trail_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [audit_trail_order_by!]

      # filter the rows returned
      where: audit_trail_bool_exp
    ): audit_trail_aggregate!

    # fetch data from the table: "audit_trail" using primary key columns
    audit_trail_by_pk(id: Int!): audit_trail

    # fetch data from the table: "available_jobs"
    available_jobs(
      # distinct select on columns
      distinct_on: [available_jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [available_jobs_order_by!]

      # filter the rows returned
      where: available_jobs_bool_exp
    ): [available_jobs!]!

    # fetch aggregated fields from the table: "available_jobs"
    available_jobs_aggregate(
      # distinct select on columns
      distinct_on: [available_jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [available_jobs_order_by!]

      # filter the rows returned
      where: available_jobs_bool_exp
    ): available_jobs_aggregate!

    # fetch data from the table: "available_jobs" using primary key columns
    available_jobs_by_pk(id: uuid!): available_jobs

    # fetch data from the table: "bodyshops"
    bodyshops(
      # distinct select on columns
      distinct_on: [bodyshops_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [bodyshops_order_by!]

      # filter the rows returned
      where: bodyshops_bool_exp
    ): [bodyshops!]!

    # fetch aggregated fields from the table: "bodyshops"
    bodyshops_aggregate(
      # distinct select on columns
      distinct_on: [bodyshops_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [bodyshops_order_by!]

      # filter the rows returned
      where: bodyshops_bool_exp
    ): bodyshops_aggregate!

    # fetch data from the table: "bodyshops" using primary key columns
    bodyshops_by_pk(id: uuid!): bodyshops

    # fetch data from the table: "cccontracts"
    cccontracts(
      # distinct select on columns
      distinct_on: [cccontracts_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [cccontracts_order_by!]

      # filter the rows returned
      where: cccontracts_bool_exp
    ): [cccontracts!]!

    # fetch aggregated fields from the table: "cccontracts"
    cccontracts_aggregate(
      # distinct select on columns
      distinct_on: [cccontracts_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [cccontracts_order_by!]

      # filter the rows returned
      where: cccontracts_bool_exp
    ): cccontracts_aggregate!

    # fetch data from the table: "cccontracts" using primary key columns
    cccontracts_by_pk(id: uuid!): cccontracts

    # fetch data from the table: "conversations"
    conversations(
      # distinct select on columns
      distinct_on: [conversations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [conversations_order_by!]

      # filter the rows returned
      where: conversations_bool_exp
    ): [conversations!]!

    # fetch aggregated fields from the table: "conversations"
    conversations_aggregate(
      # distinct select on columns
      distinct_on: [conversations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [conversations_order_by!]

      # filter the rows returned
      where: conversations_bool_exp
    ): conversations_aggregate!

    # fetch data from the table: "conversations" using primary key columns
    conversations_by_pk(id: uuid!): conversations

    # fetch data from the table: "counters"
    counters(
      # distinct select on columns
      distinct_on: [counters_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [counters_order_by!]

      # filter the rows returned
      where: counters_bool_exp
    ): [counters!]!

    # fetch aggregated fields from the table: "counters"
    counters_aggregate(
      # distinct select on columns
      distinct_on: [counters_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [counters_order_by!]

      # filter the rows returned
      where: counters_bool_exp
    ): counters_aggregate!

    # fetch data from the table: "counters" using primary key columns
    counters_by_pk(id: uuid!): counters

    # fetch data from the table: "courtesycars"
    courtesycars(
      # distinct select on columns
      distinct_on: [courtesycars_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [courtesycars_order_by!]

      # filter the rows returned
      where: courtesycars_bool_exp
    ): [courtesycars!]!

    # fetch aggregated fields from the table: "courtesycars"
    courtesycars_aggregate(
      # distinct select on columns
      distinct_on: [courtesycars_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [courtesycars_order_by!]

      # filter the rows returned
      where: courtesycars_bool_exp
    ): courtesycars_aggregate!

    # fetch data from the table: "courtesycars" using primary key columns
    courtesycars_by_pk(id: uuid!): courtesycars

    # fetch data from the table: "csi"
    csi(
      # distinct select on columns
      distinct_on: [csi_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [csi_order_by!]

      # filter the rows returned
      where: csi_bool_exp
    ): [csi!]!

    # fetch aggregated fields from the table: "csi"
    csi_aggregate(
      # distinct select on columns
      distinct_on: [csi_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [csi_order_by!]

      # filter the rows returned
      where: csi_bool_exp
    ): csi_aggregate!

    # fetch data from the table: "csi" using primary key columns
    csi_by_pk(id: uuid!): csi

    # fetch data from the table: "csiquestions"
    csiquestions(
      # distinct select on columns
      distinct_on: [csiquestions_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [csiquestions_order_by!]

      # filter the rows returned
      where: csiquestions_bool_exp
    ): [csiquestions!]!

    # fetch aggregated fields from the table: "csiquestions"
    csiquestions_aggregate(
      # distinct select on columns
      distinct_on: [csiquestions_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [csiquestions_order_by!]

      # filter the rows returned
      where: csiquestions_bool_exp
    ): csiquestions_aggregate!

    # fetch data from the table: "csiquestions" using primary key columns
    csiquestions_by_pk(id: uuid!): csiquestions

    # fetch data from the table: "documents"
    documents(
      # distinct select on columns
      distinct_on: [documents_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [documents_order_by!]

      # filter the rows returned
      where: documents_bool_exp
    ): [documents!]!

    # fetch aggregated fields from the table: "documents"
    documents_aggregate(
      # distinct select on columns
      distinct_on: [documents_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [documents_order_by!]

      # filter the rows returned
      where: documents_bool_exp
    ): documents_aggregate!

    # fetch data from the table: "documents" using primary key columns
    documents_by_pk(id: uuid!): documents

    # fetch data from the table: "employees"
    employees(
      # distinct select on columns
      distinct_on: [employees_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [employees_order_by!]

      # filter the rows returned
      where: employees_bool_exp
    ): [employees!]!

    # fetch aggregated fields from the table: "employees"
    employees_aggregate(
      # distinct select on columns
      distinct_on: [employees_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [employees_order_by!]

      # filter the rows returned
      where: employees_bool_exp
    ): employees_aggregate!

    # fetch data from the table: "employees" using primary key columns
    employees_by_pk(id: uuid!): employees

    # fetch data from the table: "invoicelines"
    invoicelines(
      # distinct select on columns
      distinct_on: [invoicelines_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [invoicelines_order_by!]

      # filter the rows returned
      where: invoicelines_bool_exp
    ): [invoicelines!]!

    # fetch aggregated fields from the table: "invoicelines"
    invoicelines_aggregate(
      # distinct select on columns
      distinct_on: [invoicelines_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [invoicelines_order_by!]

      # filter the rows returned
      where: invoicelines_bool_exp
    ): invoicelines_aggregate!

    # fetch data from the table: "invoicelines" using primary key columns
    invoicelines_by_pk(id: uuid!): invoicelines

    # fetch data from the table: "invoices"
    invoices(
      # distinct select on columns
      distinct_on: [invoices_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [invoices_order_by!]

      # filter the rows returned
      where: invoices_bool_exp
    ): [invoices!]!

    # fetch aggregated fields from the table: "invoices"
    invoices_aggregate(
      # distinct select on columns
      distinct_on: [invoices_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [invoices_order_by!]

      # filter the rows returned
      where: invoices_bool_exp
    ): invoices_aggregate!

    # fetch data from the table: "invoices" using primary key columns
    invoices_by_pk(id: uuid!): invoices

    # fetch data from the table: "job_conversations"
    job_conversations(
      # distinct select on columns
      distinct_on: [job_conversations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [job_conversations_order_by!]

      # filter the rows returned
      where: job_conversations_bool_exp
    ): [job_conversations!]!

    # fetch aggregated fields from the table: "job_conversations"
    job_conversations_aggregate(
      # distinct select on columns
      distinct_on: [job_conversations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [job_conversations_order_by!]

      # filter the rows returned
      where: job_conversations_bool_exp
    ): job_conversations_aggregate!

    # fetch data from the table: "job_conversations" using primary key columns
    job_conversations_by_pk(
      conversationid: uuid!
      jobid: uuid!
    ): job_conversations

    # fetch data from the table: "joblines"
    joblines(
      # distinct select on columns
      distinct_on: [joblines_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [joblines_order_by!]

      # filter the rows returned
      where: joblines_bool_exp
    ): [joblines!]!

    # fetch aggregated fields from the table: "joblines"
    joblines_aggregate(
      # distinct select on columns
      distinct_on: [joblines_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [joblines_order_by!]

      # filter the rows returned
      where: joblines_bool_exp
    ): joblines_aggregate!

    # fetch data from the table: "joblines" using primary key columns
    joblines_by_pk(id: uuid!): joblines

    # fetch data from the table: "joblines_status"
    joblines_status(
      # distinct select on columns
      distinct_on: [joblines_status_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [joblines_status_order_by!]

      # filter the rows returned
      where: joblines_status_bool_exp
    ): [joblines_status!]!

    # fetch aggregated fields from the table: "joblines_status"
    joblines_status_aggregate(
      # distinct select on columns
      distinct_on: [joblines_status_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [joblines_status_order_by!]

      # filter the rows returned
      where: joblines_status_bool_exp
    ): joblines_status_aggregate!

    # fetch data from the table: "jobs"
    jobs(
      # distinct select on columns
      distinct_on: [jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [jobs_order_by!]

      # filter the rows returned
      where: jobs_bool_exp
    ): [jobs!]!

    # fetch aggregated fields from the table: "jobs"
    jobs_aggregate(
      # distinct select on columns
      distinct_on: [jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [jobs_order_by!]

      # filter the rows returned
      where: jobs_bool_exp
    ): jobs_aggregate!

    # fetch data from the table: "jobs" using primary key columns
    jobs_by_pk(id: uuid!): jobs

    # fetch data from the table: "masterdata"
    masterdata(
      # distinct select on columns
      distinct_on: [masterdata_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [masterdata_order_by!]

      # filter the rows returned
      where: masterdata_bool_exp
    ): [masterdata!]!

    # fetch aggregated fields from the table: "masterdata"
    masterdata_aggregate(
      # distinct select on columns
      distinct_on: [masterdata_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [masterdata_order_by!]

      # filter the rows returned
      where: masterdata_bool_exp
    ): masterdata_aggregate!

    # fetch data from the table: "masterdata" using primary key columns
    masterdata_by_pk(key: String!): masterdata

    # fetch data from the table: "messages"
    messages(
      # distinct select on columns
      distinct_on: [messages_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [messages_order_by!]

      # filter the rows returned
      where: messages_bool_exp
    ): [messages!]!

    # fetch aggregated fields from the table: "messages"
    messages_aggregate(
      # distinct select on columns
      distinct_on: [messages_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [messages_order_by!]

      # filter the rows returned
      where: messages_bool_exp
    ): messages_aggregate!

    # fetch data from the table: "messages" using primary key columns
    messages_by_pk(id: uuid!): messages

    # fetch data from the table: "notes"
    notes(
      # distinct select on columns
      distinct_on: [notes_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [notes_order_by!]

      # filter the rows returned
      where: notes_bool_exp
    ): [notes!]!

    # fetch aggregated fields from the table: "notes"
    notes_aggregate(
      # distinct select on columns
      distinct_on: [notes_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [notes_order_by!]

      # filter the rows returned
      where: notes_bool_exp
    ): notes_aggregate!

    # fetch data from the table: "notes" using primary key columns
    notes_by_pk(id: uuid!): notes

    # fetch data from the table: "owners"
    owners(
      # distinct select on columns
      distinct_on: [owners_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [owners_order_by!]

      # filter the rows returned
      where: owners_bool_exp
    ): [owners!]!

    # fetch aggregated fields from the table: "owners"
    owners_aggregate(
      # distinct select on columns
      distinct_on: [owners_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [owners_order_by!]

      # filter the rows returned
      where: owners_bool_exp
    ): owners_aggregate!

    # fetch data from the table: "owners" using primary key columns
    owners_by_pk(id: uuid!): owners

    # fetch data from the table: "parts_order_lines"
    parts_order_lines(
      # distinct select on columns
      distinct_on: [parts_order_lines_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [parts_order_lines_order_by!]

      # filter the rows returned
      where: parts_order_lines_bool_exp
    ): [parts_order_lines!]!

    # fetch aggregated fields from the table: "parts_order_lines"
    parts_order_lines_aggregate(
      # distinct select on columns
      distinct_on: [parts_order_lines_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [parts_order_lines_order_by!]

      # filter the rows returned
      where: parts_order_lines_bool_exp
    ): parts_order_lines_aggregate!

    # fetch data from the table: "parts_order_lines" using primary key columns
    parts_order_lines_by_pk(id: uuid!): parts_order_lines

    # fetch data from the table: "parts_orders"
    parts_orders(
      # distinct select on columns
      distinct_on: [parts_orders_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [parts_orders_order_by!]

      # filter the rows returned
      where: parts_orders_bool_exp
    ): [parts_orders!]!

    # fetch aggregated fields from the table: "parts_orders"
    parts_orders_aggregate(
      # distinct select on columns
      distinct_on: [parts_orders_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [parts_orders_order_by!]

      # filter the rows returned
      where: parts_orders_bool_exp
    ): parts_orders_aggregate!

    # fetch data from the table: "parts_orders" using primary key columns
    parts_orders_by_pk(id: uuid!): parts_orders

    # fetch data from the table: "payments"
    payments(
      # distinct select on columns
      distinct_on: [payments_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [payments_order_by!]

      # filter the rows returned
      where: payments_bool_exp
    ): [payments!]!

    # fetch aggregated fields from the table: "payments"
    payments_aggregate(
      # distinct select on columns
      distinct_on: [payments_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [payments_order_by!]

      # filter the rows returned
      where: payments_bool_exp
    ): payments_aggregate!

    # fetch data from the table: "payments" using primary key columns
    payments_by_pk(id: uuid!): payments

    # fetch data from the table: "scoreboard"
    scoreboard(
      # distinct select on columns
      distinct_on: [scoreboard_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [scoreboard_order_by!]

      # filter the rows returned
      where: scoreboard_bool_exp
    ): [scoreboard!]!

    # fetch aggregated fields from the table: "scoreboard"
    scoreboard_aggregate(
      # distinct select on columns
      distinct_on: [scoreboard_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [scoreboard_order_by!]

      # filter the rows returned
      where: scoreboard_bool_exp
    ): scoreboard_aggregate!

    # fetch data from the table: "scoreboard" using primary key columns
    scoreboard_by_pk(id: uuid!): scoreboard

    # execute function "search_invoices" which returns "invoices"
    search_invoices(
      # input parameters for function "search_invoices"
      args: search_invoices_args!

      # distinct select on columns
      distinct_on: [invoices_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [invoices_order_by!]

      # filter the rows returned
      where: invoices_bool_exp
    ): [invoices!]!

    # execute function "search_invoices" and query aggregates on result of table type "invoices"
    search_invoices_aggregate(
      # input parameters for function "search_invoices"
      args: search_invoices_args!

      # distinct select on columns
      distinct_on: [invoices_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [invoices_order_by!]

      # filter the rows returned
      where: invoices_bool_exp
    ): invoices_aggregate!

    # execute function "search_jobs" which returns "jobs"
    search_jobs(
      # input parameters for function "search_jobs"
      args: search_jobs_args!

      # distinct select on columns
      distinct_on: [jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [jobs_order_by!]

      # filter the rows returned
      where: jobs_bool_exp
    ): [jobs!]!

    # execute function "search_jobs" and query aggregates on result of table type "jobs"
    search_jobs_aggregate(
      # input parameters for function "search_jobs"
      args: search_jobs_args!

      # distinct select on columns
      distinct_on: [jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [jobs_order_by!]

      # filter the rows returned
      where: jobs_bool_exp
    ): jobs_aggregate!

    # execute function "search_owners" which returns "owners"
    search_owners(
      # input parameters for function "search_owners"
      args: search_owners_args!

      # distinct select on columns
      distinct_on: [owners_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [owners_order_by!]

      # filter the rows returned
      where: owners_bool_exp
    ): [owners!]!

    # execute function "search_owners" and query aggregates on result of table type "owners"
    search_owners_aggregate(
      # input parameters for function "search_owners"
      args: search_owners_args!

      # distinct select on columns
      distinct_on: [owners_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [owners_order_by!]

      # filter the rows returned
      where: owners_bool_exp
    ): owners_aggregate!

    # execute function "search_payments" which returns "payments"
    search_payments(
      # input parameters for function "search_payments"
      args: search_payments_args!

      # distinct select on columns
      distinct_on: [payments_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [payments_order_by!]

      # filter the rows returned
      where: payments_bool_exp
    ): [payments!]!

    # execute function "search_payments" and query aggregates on result of table type "payments"
    search_payments_aggregate(
      # input parameters for function "search_payments"
      args: search_payments_args!

      # distinct select on columns
      distinct_on: [payments_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [payments_order_by!]

      # filter the rows returned
      where: payments_bool_exp
    ): payments_aggregate!

    # execute function "search_vehicles" which returns "vehicles"
    search_vehicles(
      # input parameters for function "search_vehicles"
      args: search_vehicles_args!

      # distinct select on columns
      distinct_on: [vehicles_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [vehicles_order_by!]

      # filter the rows returned
      where: vehicles_bool_exp
    ): [vehicles!]!

    # execute function "search_vehicles" and query aggregates on result of table type "vehicles"
    search_vehicles_aggregate(
      # input parameters for function "search_vehicles"
      args: search_vehicles_args!

      # distinct select on columns
      distinct_on: [vehicles_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [vehicles_order_by!]

      # filter the rows returned
      where: vehicles_bool_exp
    ): vehicles_aggregate!

    # fetch data from the table: "templates"
    templates(
      # distinct select on columns
      distinct_on: [templates_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [templates_order_by!]

      # filter the rows returned
      where: templates_bool_exp
    ): [templates!]!

    # fetch aggregated fields from the table: "templates"
    templates_aggregate(
      # distinct select on columns
      distinct_on: [templates_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [templates_order_by!]

      # filter the rows returned
      where: templates_bool_exp
    ): templates_aggregate!

    # fetch data from the table: "templates" using primary key columns
    templates_by_pk(id: uuid!): templates

    # fetch data from the table: "timetickets"
    timetickets(
      # distinct select on columns
      distinct_on: [timetickets_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [timetickets_order_by!]

      # filter the rows returned
      where: timetickets_bool_exp
    ): [timetickets!]!

    # fetch aggregated fields from the table: "timetickets"
    timetickets_aggregate(
      # distinct select on columns
      distinct_on: [timetickets_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [timetickets_order_by!]

      # filter the rows returned
      where: timetickets_bool_exp
    ): timetickets_aggregate!

    # fetch data from the table: "timetickets" using primary key columns
    timetickets_by_pk(id: uuid!): timetickets

    # fetch data from the table: "users"
    users(
      # distinct select on columns
      distinct_on: [users_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [users_order_by!]

      # filter the rows returned
      where: users_bool_exp
    ): [users!]!

    # fetch aggregated fields from the table: "users"
    users_aggregate(
      # distinct select on columns
      distinct_on: [users_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [users_order_by!]

      # filter the rows returned
      where: users_bool_exp
    ): users_aggregate!

    # fetch data from the table: "users" using primary key columns
    users_by_pk(email: String!): users

    # fetch data from the table: "vehicles"
    vehicles(
      # distinct select on columns
      distinct_on: [vehicles_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [vehicles_order_by!]

      # filter the rows returned
      where: vehicles_bool_exp
    ): [vehicles!]!

    # fetch aggregated fields from the table: "vehicles"
    vehicles_aggregate(
      # distinct select on columns
      distinct_on: [vehicles_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [vehicles_order_by!]

      # filter the rows returned
      where: vehicles_bool_exp
    ): vehicles_aggregate!

    # fetch data from the table: "vehicles" using primary key columns
    vehicles_by_pk(id: uuid!): vehicles

    # fetch data from the table: "vendors"
    vendors(
      # distinct select on columns
      distinct_on: [vendors_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [vendors_order_by!]

      # filter the rows returned
      where: vendors_bool_exp
    ): [vendors!]!

    # fetch aggregated fields from the table: "vendors"
    vendors_aggregate(
      # distinct select on columns
      distinct_on: [vendors_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [vendors_order_by!]

      # filter the rows returned
      where: vendors_bool_exp
    ): vendors_aggregate!

    # fetch data from the table: "vendors" using primary key columns
    vendors_by_pk(id: uuid!): vendors
  }

  # columns and relationships of "scoreboard"
  type scoreboard {
    bodyhrs: numeric!
    date: date!
    id: uuid!

    # An object relationship
    job: jobs!
    jobid: uuid!
    painthrs: numeric!
  }

  # aggregated selection of "scoreboard"
  type scoreboard_aggregate {
    aggregate: scoreboard_aggregate_fields
    nodes: [scoreboard!]!
  }

  # aggregate fields of "scoreboard"
  type scoreboard_aggregate_fields {
    avg: scoreboard_avg_fields
    count(columns: [scoreboard_select_column!], distinct: Boolean): Int
    max: scoreboard_max_fields
    min: scoreboard_min_fields
    stddev: scoreboard_stddev_fields
    stddev_pop: scoreboard_stddev_pop_fields
    stddev_samp: scoreboard_stddev_samp_fields
    sum: scoreboard_sum_fields
    var_pop: scoreboard_var_pop_fields
    var_samp: scoreboard_var_samp_fields
    variance: scoreboard_variance_fields
  }

  # order by aggregate values of table "scoreboard"
  input scoreboard_aggregate_order_by {
    avg: scoreboard_avg_order_by
    count: order_by
    max: scoreboard_max_order_by
    min: scoreboard_min_order_by
    stddev: scoreboard_stddev_order_by
    stddev_pop: scoreboard_stddev_pop_order_by
    stddev_samp: scoreboard_stddev_samp_order_by
    sum: scoreboard_sum_order_by
    var_pop: scoreboard_var_pop_order_by
    var_samp: scoreboard_var_samp_order_by
    variance: scoreboard_variance_order_by
  }

  # input type for inserting array relation for remote table "scoreboard"
  input scoreboard_arr_rel_insert_input {
    data: [scoreboard_insert_input!]!
    on_conflict: scoreboard_on_conflict
  }

  # aggregate avg on columns
  type scoreboard_avg_fields {
    bodyhrs: Float
    painthrs: Float
  }

  # order by avg() on columns of table "scoreboard"
  input scoreboard_avg_order_by {
    bodyhrs: order_by
    painthrs: order_by
  }

  # Boolean expression to filter rows from the table "scoreboard". All fields are combined with a logical 'AND'.
  input scoreboard_bool_exp {
    _and: [scoreboard_bool_exp]
    _not: scoreboard_bool_exp
    _or: [scoreboard_bool_exp]
    bodyhrs: numeric_comparison_exp
    date: date_comparison_exp
    id: uuid_comparison_exp
    job: jobs_bool_exp
    jobid: uuid_comparison_exp
    painthrs: numeric_comparison_exp
  }

  # unique or primary key constraints on table "scoreboard"
  enum scoreboard_constraint {
    # unique or primary key constraint
    scoreboard_pkey
  }

  # input type for incrementing integer column in table "scoreboard"
  input scoreboard_inc_input {
    bodyhrs: numeric
    painthrs: numeric
  }

  # input type for inserting data into table "scoreboard"
  input scoreboard_insert_input {
    bodyhrs: numeric
    date: date
    id: uuid
    job: jobs_obj_rel_insert_input
    jobid: uuid
    painthrs: numeric
  }

  # aggregate max on columns
  type scoreboard_max_fields {
    bodyhrs: numeric
    date: date
    id: uuid
    jobid: uuid
    painthrs: numeric
  }

  # order by max() on columns of table "scoreboard"
  input scoreboard_max_order_by {
    bodyhrs: order_by
    date: order_by
    id: order_by
    jobid: order_by
    painthrs: order_by
  }

  # aggregate min on columns
  type scoreboard_min_fields {
    bodyhrs: numeric
    date: date
    id: uuid
    jobid: uuid
    painthrs: numeric
  }

  # order by min() on columns of table "scoreboard"
  input scoreboard_min_order_by {
    bodyhrs: order_by
    date: order_by
    id: order_by
    jobid: order_by
    painthrs: order_by
  }

  # response of any mutation on the table "scoreboard"
  type scoreboard_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [scoreboard!]!
  }

  # input type for inserting object relation for remote table "scoreboard"
  input scoreboard_obj_rel_insert_input {
    data: scoreboard_insert_input!
    on_conflict: scoreboard_on_conflict
  }

  # on conflict condition type for table "scoreboard"
  input scoreboard_on_conflict {
    constraint: scoreboard_constraint!
    update_columns: [scoreboard_update_column!]!
    where: scoreboard_bool_exp
  }

  # ordering options when selecting data from "scoreboard"
  input scoreboard_order_by {
    bodyhrs: order_by
    date: order_by
    id: order_by
    job: jobs_order_by
    jobid: order_by
    painthrs: order_by
  }

  # primary key columns input for table: "scoreboard"
  input scoreboard_pk_columns_input {
    id: uuid!
  }

  # select columns of table "scoreboard"
  enum scoreboard_select_column {
    # column name
    bodyhrs

    # column name
    date

    # column name
    id

    # column name
    jobid

    # column name
    painthrs
  }

  # input type for updating data in table "scoreboard"
  input scoreboard_set_input {
    bodyhrs: numeric
    date: date
    id: uuid
    jobid: uuid
    painthrs: numeric
  }

  # aggregate stddev on columns
  type scoreboard_stddev_fields {
    bodyhrs: Float
    painthrs: Float
  }

  # order by stddev() on columns of table "scoreboard"
  input scoreboard_stddev_order_by {
    bodyhrs: order_by
    painthrs: order_by
  }

  # aggregate stddev_pop on columns
  type scoreboard_stddev_pop_fields {
    bodyhrs: Float
    painthrs: Float
  }

  # order by stddev_pop() on columns of table "scoreboard"
  input scoreboard_stddev_pop_order_by {
    bodyhrs: order_by
    painthrs: order_by
  }

  # aggregate stddev_samp on columns
  type scoreboard_stddev_samp_fields {
    bodyhrs: Float
    painthrs: Float
  }

  # order by stddev_samp() on columns of table "scoreboard"
  input scoreboard_stddev_samp_order_by {
    bodyhrs: order_by
    painthrs: order_by
  }

  # aggregate sum on columns
  type scoreboard_sum_fields {
    bodyhrs: numeric
    painthrs: numeric
  }

  # order by sum() on columns of table "scoreboard"
  input scoreboard_sum_order_by {
    bodyhrs: order_by
    painthrs: order_by
  }

  # update columns of table "scoreboard"
  enum scoreboard_update_column {
    # column name
    bodyhrs

    # column name
    date

    # column name
    id

    # column name
    jobid

    # column name
    painthrs
  }

  # aggregate var_pop on columns
  type scoreboard_var_pop_fields {
    bodyhrs: Float
    painthrs: Float
  }

  # order by var_pop() on columns of table "scoreboard"
  input scoreboard_var_pop_order_by {
    bodyhrs: order_by
    painthrs: order_by
  }

  # aggregate var_samp on columns
  type scoreboard_var_samp_fields {
    bodyhrs: Float
    painthrs: Float
  }

  # order by var_samp() on columns of table "scoreboard"
  input scoreboard_var_samp_order_by {
    bodyhrs: order_by
    painthrs: order_by
  }

  # aggregate variance on columns
  type scoreboard_variance_fields {
    bodyhrs: Float
    painthrs: Float
  }

  # order by variance() on columns of table "scoreboard"
  input scoreboard_variance_order_by {
    bodyhrs: order_by
    painthrs: order_by
  }

  input search_invoices_args {
    search: String
  }

  input search_jobs_args {
    search: String
  }

  input search_owners_args {
    search: String
  }

  input search_payments_args {
    search: String
  }

  input search_vehicles_args {
    search: String
  }

  # expression to compare columns of type String. All fields are combined with logical 'AND'.
  input String_comparison_exp {
    _eq: String
    _gt: String
    _gte: String
    _ilike: String
    _in: [String!]
    _is_null: Boolean
    _like: String
    _lt: String
    _lte: String
    _neq: String
    _nilike: String
    _nin: [String!]
    _nlike: String
    _nsimilar: String
    _similar: String
  }

  # subscription root
  type subscription_root {
    # fetch data from the table: "allocations"
    allocations(
      # distinct select on columns
      distinct_on: [allocations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [allocations_order_by!]

      # filter the rows returned
      where: allocations_bool_exp
    ): [allocations!]!

    # fetch aggregated fields from the table: "allocations"
    allocations_aggregate(
      # distinct select on columns
      distinct_on: [allocations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [allocations_order_by!]

      # filter the rows returned
      where: allocations_bool_exp
    ): allocations_aggregate!

    # fetch data from the table: "allocations" using primary key columns
    allocations_by_pk(id: uuid!): allocations

    # fetch data from the table: "appointments"
    appointments(
      # distinct select on columns
      distinct_on: [appointments_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [appointments_order_by!]

      # filter the rows returned
      where: appointments_bool_exp
    ): [appointments!]!

    # fetch aggregated fields from the table: "appointments"
    appointments_aggregate(
      # distinct select on columns
      distinct_on: [appointments_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [appointments_order_by!]

      # filter the rows returned
      where: appointments_bool_exp
    ): appointments_aggregate!

    # fetch data from the table: "appointments" using primary key columns
    appointments_by_pk(id: uuid!): appointments

    # fetch data from the table: "associations"
    associations(
      # distinct select on columns
      distinct_on: [associations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [associations_order_by!]

      # filter the rows returned
      where: associations_bool_exp
    ): [associations!]!

    # fetch aggregated fields from the table: "associations"
    associations_aggregate(
      # distinct select on columns
      distinct_on: [associations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [associations_order_by!]

      # filter the rows returned
      where: associations_bool_exp
    ): associations_aggregate!

    # fetch data from the table: "associations" using primary key columns
    associations_by_pk(id: uuid!): associations

    # fetch data from the table: "audit_trail"
    audit_trail(
      # distinct select on columns
      distinct_on: [audit_trail_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [audit_trail_order_by!]

      # filter the rows returned
      where: audit_trail_bool_exp
    ): [audit_trail!]!

    # fetch aggregated fields from the table: "audit_trail"
    audit_trail_aggregate(
      # distinct select on columns
      distinct_on: [audit_trail_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [audit_trail_order_by!]

      # filter the rows returned
      where: audit_trail_bool_exp
    ): audit_trail_aggregate!

    # fetch data from the table: "audit_trail" using primary key columns
    audit_trail_by_pk(id: Int!): audit_trail

    # fetch data from the table: "available_jobs"
    available_jobs(
      # distinct select on columns
      distinct_on: [available_jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [available_jobs_order_by!]

      # filter the rows returned
      where: available_jobs_bool_exp
    ): [available_jobs!]!

    # fetch aggregated fields from the table: "available_jobs"
    available_jobs_aggregate(
      # distinct select on columns
      distinct_on: [available_jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [available_jobs_order_by!]

      # filter the rows returned
      where: available_jobs_bool_exp
    ): available_jobs_aggregate!

    # fetch data from the table: "available_jobs" using primary key columns
    available_jobs_by_pk(id: uuid!): available_jobs

    # fetch data from the table: "bodyshops"
    bodyshops(
      # distinct select on columns
      distinct_on: [bodyshops_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [bodyshops_order_by!]

      # filter the rows returned
      where: bodyshops_bool_exp
    ): [bodyshops!]!

    # fetch aggregated fields from the table: "bodyshops"
    bodyshops_aggregate(
      # distinct select on columns
      distinct_on: [bodyshops_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [bodyshops_order_by!]

      # filter the rows returned
      where: bodyshops_bool_exp
    ): bodyshops_aggregate!

    # fetch data from the table: "bodyshops" using primary key columns
    bodyshops_by_pk(id: uuid!): bodyshops

    # fetch data from the table: "cccontracts"
    cccontracts(
      # distinct select on columns
      distinct_on: [cccontracts_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [cccontracts_order_by!]

      # filter the rows returned
      where: cccontracts_bool_exp
    ): [cccontracts!]!

    # fetch aggregated fields from the table: "cccontracts"
    cccontracts_aggregate(
      # distinct select on columns
      distinct_on: [cccontracts_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [cccontracts_order_by!]

      # filter the rows returned
      where: cccontracts_bool_exp
    ): cccontracts_aggregate!

    # fetch data from the table: "cccontracts" using primary key columns
    cccontracts_by_pk(id: uuid!): cccontracts

    # fetch data from the table: "conversations"
    conversations(
      # distinct select on columns
      distinct_on: [conversations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [conversations_order_by!]

      # filter the rows returned
      where: conversations_bool_exp
    ): [conversations!]!

    # fetch aggregated fields from the table: "conversations"
    conversations_aggregate(
      # distinct select on columns
      distinct_on: [conversations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [conversations_order_by!]

      # filter the rows returned
      where: conversations_bool_exp
    ): conversations_aggregate!

    # fetch data from the table: "conversations" using primary key columns
    conversations_by_pk(id: uuid!): conversations

    # fetch data from the table: "counters"
    counters(
      # distinct select on columns
      distinct_on: [counters_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [counters_order_by!]

      # filter the rows returned
      where: counters_bool_exp
    ): [counters!]!

    # fetch aggregated fields from the table: "counters"
    counters_aggregate(
      # distinct select on columns
      distinct_on: [counters_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [counters_order_by!]

      # filter the rows returned
      where: counters_bool_exp
    ): counters_aggregate!

    # fetch data from the table: "counters" using primary key columns
    counters_by_pk(id: uuid!): counters

    # fetch data from the table: "courtesycars"
    courtesycars(
      # distinct select on columns
      distinct_on: [courtesycars_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [courtesycars_order_by!]

      # filter the rows returned
      where: courtesycars_bool_exp
    ): [courtesycars!]!

    # fetch aggregated fields from the table: "courtesycars"
    courtesycars_aggregate(
      # distinct select on columns
      distinct_on: [courtesycars_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [courtesycars_order_by!]

      # filter the rows returned
      where: courtesycars_bool_exp
    ): courtesycars_aggregate!

    # fetch data from the table: "courtesycars" using primary key columns
    courtesycars_by_pk(id: uuid!): courtesycars

    # fetch data from the table: "csi"
    csi(
      # distinct select on columns
      distinct_on: [csi_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [csi_order_by!]

      # filter the rows returned
      where: csi_bool_exp
    ): [csi!]!

    # fetch aggregated fields from the table: "csi"
    csi_aggregate(
      # distinct select on columns
      distinct_on: [csi_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [csi_order_by!]

      # filter the rows returned
      where: csi_bool_exp
    ): csi_aggregate!

    # fetch data from the table: "csi" using primary key columns
    csi_by_pk(id: uuid!): csi

    # fetch data from the table: "csiquestions"
    csiquestions(
      # distinct select on columns
      distinct_on: [csiquestions_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [csiquestions_order_by!]

      # filter the rows returned
      where: csiquestions_bool_exp
    ): [csiquestions!]!

    # fetch aggregated fields from the table: "csiquestions"
    csiquestions_aggregate(
      # distinct select on columns
      distinct_on: [csiquestions_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [csiquestions_order_by!]

      # filter the rows returned
      where: csiquestions_bool_exp
    ): csiquestions_aggregate!

    # fetch data from the table: "csiquestions" using primary key columns
    csiquestions_by_pk(id: uuid!): csiquestions

    # fetch data from the table: "documents"
    documents(
      # distinct select on columns
      distinct_on: [documents_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [documents_order_by!]

      # filter the rows returned
      where: documents_bool_exp
    ): [documents!]!

    # fetch aggregated fields from the table: "documents"
    documents_aggregate(
      # distinct select on columns
      distinct_on: [documents_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [documents_order_by!]

      # filter the rows returned
      where: documents_bool_exp
    ): documents_aggregate!

    # fetch data from the table: "documents" using primary key columns
    documents_by_pk(id: uuid!): documents

    # fetch data from the table: "employees"
    employees(
      # distinct select on columns
      distinct_on: [employees_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [employees_order_by!]

      # filter the rows returned
      where: employees_bool_exp
    ): [employees!]!

    # fetch aggregated fields from the table: "employees"
    employees_aggregate(
      # distinct select on columns
      distinct_on: [employees_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [employees_order_by!]

      # filter the rows returned
      where: employees_bool_exp
    ): employees_aggregate!

    # fetch data from the table: "employees" using primary key columns
    employees_by_pk(id: uuid!): employees

    # fetch data from the table: "invoicelines"
    invoicelines(
      # distinct select on columns
      distinct_on: [invoicelines_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [invoicelines_order_by!]

      # filter the rows returned
      where: invoicelines_bool_exp
    ): [invoicelines!]!

    # fetch aggregated fields from the table: "invoicelines"
    invoicelines_aggregate(
      # distinct select on columns
      distinct_on: [invoicelines_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [invoicelines_order_by!]

      # filter the rows returned
      where: invoicelines_bool_exp
    ): invoicelines_aggregate!

    # fetch data from the table: "invoicelines" using primary key columns
    invoicelines_by_pk(id: uuid!): invoicelines

    # fetch data from the table: "invoices"
    invoices(
      # distinct select on columns
      distinct_on: [invoices_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [invoices_order_by!]

      # filter the rows returned
      where: invoices_bool_exp
    ): [invoices!]!

    # fetch aggregated fields from the table: "invoices"
    invoices_aggregate(
      # distinct select on columns
      distinct_on: [invoices_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [invoices_order_by!]

      # filter the rows returned
      where: invoices_bool_exp
    ): invoices_aggregate!

    # fetch data from the table: "invoices" using primary key columns
    invoices_by_pk(id: uuid!): invoices

    # fetch data from the table: "job_conversations"
    job_conversations(
      # distinct select on columns
      distinct_on: [job_conversations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [job_conversations_order_by!]

      # filter the rows returned
      where: job_conversations_bool_exp
    ): [job_conversations!]!

    # fetch aggregated fields from the table: "job_conversations"
    job_conversations_aggregate(
      # distinct select on columns
      distinct_on: [job_conversations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [job_conversations_order_by!]

      # filter the rows returned
      where: job_conversations_bool_exp
    ): job_conversations_aggregate!

    # fetch data from the table: "job_conversations" using primary key columns
    job_conversations_by_pk(
      conversationid: uuid!
      jobid: uuid!
    ): job_conversations

    # fetch data from the table: "joblines"
    joblines(
      # distinct select on columns
      distinct_on: [joblines_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [joblines_order_by!]

      # filter the rows returned
      where: joblines_bool_exp
    ): [joblines!]!

    # fetch aggregated fields from the table: "joblines"
    joblines_aggregate(
      # distinct select on columns
      distinct_on: [joblines_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [joblines_order_by!]

      # filter the rows returned
      where: joblines_bool_exp
    ): joblines_aggregate!

    # fetch data from the table: "joblines" using primary key columns
    joblines_by_pk(id: uuid!): joblines

    # fetch data from the table: "joblines_status"
    joblines_status(
      # distinct select on columns
      distinct_on: [joblines_status_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [joblines_status_order_by!]

      # filter the rows returned
      where: joblines_status_bool_exp
    ): [joblines_status!]!

    # fetch aggregated fields from the table: "joblines_status"
    joblines_status_aggregate(
      # distinct select on columns
      distinct_on: [joblines_status_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [joblines_status_order_by!]

      # filter the rows returned
      where: joblines_status_bool_exp
    ): joblines_status_aggregate!

    # fetch data from the table: "jobs"
    jobs(
      # distinct select on columns
      distinct_on: [jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [jobs_order_by!]

      # filter the rows returned
      where: jobs_bool_exp
    ): [jobs!]!

    # fetch aggregated fields from the table: "jobs"
    jobs_aggregate(
      # distinct select on columns
      distinct_on: [jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [jobs_order_by!]

      # filter the rows returned
      where: jobs_bool_exp
    ): jobs_aggregate!

    # fetch data from the table: "jobs" using primary key columns
    jobs_by_pk(id: uuid!): jobs

    # fetch data from the table: "masterdata"
    masterdata(
      # distinct select on columns
      distinct_on: [masterdata_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [masterdata_order_by!]

      # filter the rows returned
      where: masterdata_bool_exp
    ): [masterdata!]!

    # fetch aggregated fields from the table: "masterdata"
    masterdata_aggregate(
      # distinct select on columns
      distinct_on: [masterdata_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [masterdata_order_by!]

      # filter the rows returned
      where: masterdata_bool_exp
    ): masterdata_aggregate!

    # fetch data from the table: "masterdata" using primary key columns
    masterdata_by_pk(key: String!): masterdata

    # fetch data from the table: "messages"
    messages(
      # distinct select on columns
      distinct_on: [messages_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [messages_order_by!]

      # filter the rows returned
      where: messages_bool_exp
    ): [messages!]!

    # fetch aggregated fields from the table: "messages"
    messages_aggregate(
      # distinct select on columns
      distinct_on: [messages_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [messages_order_by!]

      # filter the rows returned
      where: messages_bool_exp
    ): messages_aggregate!

    # fetch data from the table: "messages" using primary key columns
    messages_by_pk(id: uuid!): messages

    # fetch data from the table: "notes"
    notes(
      # distinct select on columns
      distinct_on: [notes_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [notes_order_by!]

      # filter the rows returned
      where: notes_bool_exp
    ): [notes!]!

    # fetch aggregated fields from the table: "notes"
    notes_aggregate(
      # distinct select on columns
      distinct_on: [notes_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [notes_order_by!]

      # filter the rows returned
      where: notes_bool_exp
    ): notes_aggregate!

    # fetch data from the table: "notes" using primary key columns
    notes_by_pk(id: uuid!): notes

    # fetch data from the table: "owners"
    owners(
      # distinct select on columns
      distinct_on: [owners_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [owners_order_by!]

      # filter the rows returned
      where: owners_bool_exp
    ): [owners!]!

    # fetch aggregated fields from the table: "owners"
    owners_aggregate(
      # distinct select on columns
      distinct_on: [owners_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [owners_order_by!]

      # filter the rows returned
      where: owners_bool_exp
    ): owners_aggregate!

    # fetch data from the table: "owners" using primary key columns
    owners_by_pk(id: uuid!): owners

    # fetch data from the table: "parts_order_lines"
    parts_order_lines(
      # distinct select on columns
      distinct_on: [parts_order_lines_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [parts_order_lines_order_by!]

      # filter the rows returned
      where: parts_order_lines_bool_exp
    ): [parts_order_lines!]!

    # fetch aggregated fields from the table: "parts_order_lines"
    parts_order_lines_aggregate(
      # distinct select on columns
      distinct_on: [parts_order_lines_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [parts_order_lines_order_by!]

      # filter the rows returned
      where: parts_order_lines_bool_exp
    ): parts_order_lines_aggregate!

    # fetch data from the table: "parts_order_lines" using primary key columns
    parts_order_lines_by_pk(id: uuid!): parts_order_lines

    # fetch data from the table: "parts_orders"
    parts_orders(
      # distinct select on columns
      distinct_on: [parts_orders_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [parts_orders_order_by!]

      # filter the rows returned
      where: parts_orders_bool_exp
    ): [parts_orders!]!

    # fetch aggregated fields from the table: "parts_orders"
    parts_orders_aggregate(
      # distinct select on columns
      distinct_on: [parts_orders_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [parts_orders_order_by!]

      # filter the rows returned
      where: parts_orders_bool_exp
    ): parts_orders_aggregate!

    # fetch data from the table: "parts_orders" using primary key columns
    parts_orders_by_pk(id: uuid!): parts_orders

    # fetch data from the table: "payments"
    payments(
      # distinct select on columns
      distinct_on: [payments_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [payments_order_by!]

      # filter the rows returned
      where: payments_bool_exp
    ): [payments!]!

    # fetch aggregated fields from the table: "payments"
    payments_aggregate(
      # distinct select on columns
      distinct_on: [payments_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [payments_order_by!]

      # filter the rows returned
      where: payments_bool_exp
    ): payments_aggregate!

    # fetch data from the table: "payments" using primary key columns
    payments_by_pk(id: uuid!): payments

    # fetch data from the table: "scoreboard"
    scoreboard(
      # distinct select on columns
      distinct_on: [scoreboard_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [scoreboard_order_by!]

      # filter the rows returned
      where: scoreboard_bool_exp
    ): [scoreboard!]!

    # fetch aggregated fields from the table: "scoreboard"
    scoreboard_aggregate(
      # distinct select on columns
      distinct_on: [scoreboard_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [scoreboard_order_by!]

      # filter the rows returned
      where: scoreboard_bool_exp
    ): scoreboard_aggregate!

    # fetch data from the table: "scoreboard" using primary key columns
    scoreboard_by_pk(id: uuid!): scoreboard

    # execute function "search_invoices" which returns "invoices"
    search_invoices(
      # input parameters for function "search_invoices"
      args: search_invoices_args!

      # distinct select on columns
      distinct_on: [invoices_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [invoices_order_by!]

      # filter the rows returned
      where: invoices_bool_exp
    ): [invoices!]!

    # execute function "search_invoices" and query aggregates on result of table type "invoices"
    search_invoices_aggregate(
      # input parameters for function "search_invoices"
      args: search_invoices_args!

      # distinct select on columns
      distinct_on: [invoices_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [invoices_order_by!]

      # filter the rows returned
      where: invoices_bool_exp
    ): invoices_aggregate!

    # execute function "search_jobs" which returns "jobs"
    search_jobs(
      # input parameters for function "search_jobs"
      args: search_jobs_args!

      # distinct select on columns
      distinct_on: [jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [jobs_order_by!]

      # filter the rows returned
      where: jobs_bool_exp
    ): [jobs!]!

    # execute function "search_jobs" and query aggregates on result of table type "jobs"
    search_jobs_aggregate(
      # input parameters for function "search_jobs"
      args: search_jobs_args!

      # distinct select on columns
      distinct_on: [jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [jobs_order_by!]

      # filter the rows returned
      where: jobs_bool_exp
    ): jobs_aggregate!

    # execute function "search_owners" which returns "owners"
    search_owners(
      # input parameters for function "search_owners"
      args: search_owners_args!

      # distinct select on columns
      distinct_on: [owners_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [owners_order_by!]

      # filter the rows returned
      where: owners_bool_exp
    ): [owners!]!

    # execute function "search_owners" and query aggregates on result of table type "owners"
    search_owners_aggregate(
      # input parameters for function "search_owners"
      args: search_owners_args!

      # distinct select on columns
      distinct_on: [owners_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [owners_order_by!]

      # filter the rows returned
      where: owners_bool_exp
    ): owners_aggregate!

    # execute function "search_payments" which returns "payments"
    search_payments(
      # input parameters for function "search_payments"
      args: search_payments_args!

      # distinct select on columns
      distinct_on: [payments_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [payments_order_by!]

      # filter the rows returned
      where: payments_bool_exp
    ): [payments!]!

    # execute function "search_payments" and query aggregates on result of table type "payments"
    search_payments_aggregate(
      # input parameters for function "search_payments"
      args: search_payments_args!

      # distinct select on columns
      distinct_on: [payments_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [payments_order_by!]

      # filter the rows returned
      where: payments_bool_exp
    ): payments_aggregate!

    # execute function "search_vehicles" which returns "vehicles"
    search_vehicles(
      # input parameters for function "search_vehicles"
      args: search_vehicles_args!

      # distinct select on columns
      distinct_on: [vehicles_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [vehicles_order_by!]

      # filter the rows returned
      where: vehicles_bool_exp
    ): [vehicles!]!

    # execute function "search_vehicles" and query aggregates on result of table type "vehicles"
    search_vehicles_aggregate(
      # input parameters for function "search_vehicles"
      args: search_vehicles_args!

      # distinct select on columns
      distinct_on: [vehicles_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [vehicles_order_by!]

      # filter the rows returned
      where: vehicles_bool_exp
    ): vehicles_aggregate!

    # fetch data from the table: "templates"
    templates(
      # distinct select on columns
      distinct_on: [templates_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [templates_order_by!]

      # filter the rows returned
      where: templates_bool_exp
    ): [templates!]!

    # fetch aggregated fields from the table: "templates"
    templates_aggregate(
      # distinct select on columns
      distinct_on: [templates_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [templates_order_by!]

      # filter the rows returned
      where: templates_bool_exp
    ): templates_aggregate!

    # fetch data from the table: "templates" using primary key columns
    templates_by_pk(id: uuid!): templates

    # fetch data from the table: "timetickets"
    timetickets(
      # distinct select on columns
      distinct_on: [timetickets_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [timetickets_order_by!]

      # filter the rows returned
      where: timetickets_bool_exp
    ): [timetickets!]!

    # fetch aggregated fields from the table: "timetickets"
    timetickets_aggregate(
      # distinct select on columns
      distinct_on: [timetickets_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [timetickets_order_by!]

      # filter the rows returned
      where: timetickets_bool_exp
    ): timetickets_aggregate!

    # fetch data from the table: "timetickets" using primary key columns
    timetickets_by_pk(id: uuid!): timetickets

    # fetch data from the table: "users"
    users(
      # distinct select on columns
      distinct_on: [users_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [users_order_by!]

      # filter the rows returned
      where: users_bool_exp
    ): [users!]!

    # fetch aggregated fields from the table: "users"
    users_aggregate(
      # distinct select on columns
      distinct_on: [users_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [users_order_by!]

      # filter the rows returned
      where: users_bool_exp
    ): users_aggregate!

    # fetch data from the table: "users" using primary key columns
    users_by_pk(email: String!): users

    # fetch data from the table: "vehicles"
    vehicles(
      # distinct select on columns
      distinct_on: [vehicles_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [vehicles_order_by!]

      # filter the rows returned
      where: vehicles_bool_exp
    ): [vehicles!]!

    # fetch aggregated fields from the table: "vehicles"
    vehicles_aggregate(
      # distinct select on columns
      distinct_on: [vehicles_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [vehicles_order_by!]

      # filter the rows returned
      where: vehicles_bool_exp
    ): vehicles_aggregate!

    # fetch data from the table: "vehicles" using primary key columns
    vehicles_by_pk(id: uuid!): vehicles

    # fetch data from the table: "vendors"
    vendors(
      # distinct select on columns
      distinct_on: [vendors_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [vendors_order_by!]

      # filter the rows returned
      where: vendors_bool_exp
    ): [vendors!]!

    # fetch aggregated fields from the table: "vendors"
    vendors_aggregate(
      # distinct select on columns
      distinct_on: [vendors_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [vendors_order_by!]

      # filter the rows returned
      where: vendors_bool_exp
    ): vendors_aggregate!

    # fetch data from the table: "vendors" using primary key columns
    vendors_by_pk(id: uuid!): vendors
  }

  # columns and relationships of "templates"
  type templates {
    # An object relationship
    bodyshop: bodyshops
    bodyshopid: uuid
    created_at: timestamptz!
    html: String!
    id: uuid!
    jsontemplate(
      # JSON select path
      path: String
    ): jsonb
    name: String!
    query: String!
    updated_at: timestamptz!
  }

  # aggregated selection of "templates"
  type templates_aggregate {
    aggregate: templates_aggregate_fields
    nodes: [templates!]!
  }

  # aggregate fields of "templates"
  type templates_aggregate_fields {
    count(columns: [templates_select_column!], distinct: Boolean): Int
    max: templates_max_fields
    min: templates_min_fields
  }

  # order by aggregate values of table "templates"
  input templates_aggregate_order_by {
    count: order_by
    max: templates_max_order_by
    min: templates_min_order_by
  }

  # append existing jsonb value of filtered columns with new jsonb value
  input templates_append_input {
    jsontemplate: jsonb
  }

  # input type for inserting array relation for remote table "templates"
  input templates_arr_rel_insert_input {
    data: [templates_insert_input!]!
    on_conflict: templates_on_conflict
  }

  # Boolean expression to filter rows from the table "templates". All fields are combined with a logical 'AND'.
  input templates_bool_exp {
    _and: [templates_bool_exp]
    _not: templates_bool_exp
    _or: [templates_bool_exp]
    bodyshop: bodyshops_bool_exp
    bodyshopid: uuid_comparison_exp
    created_at: timestamptz_comparison_exp
    html: String_comparison_exp
    id: uuid_comparison_exp
    jsontemplate: jsonb_comparison_exp
    name: String_comparison_exp
    query: String_comparison_exp
    updated_at: timestamptz_comparison_exp
  }

  # unique or primary key constraints on table "templates"
  enum templates_constraint {
    # unique or primary key constraint
    templates_pkey
  }

  # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
  input templates_delete_at_path_input {
    jsontemplate: [String]
  }

  # delete the array element with specified index (negative integers count from the
  # end). throws an error if top level container is not an array
  input templates_delete_elem_input {
    jsontemplate: Int
  }

  # delete key/value pair or string element. key/value pairs are matched based on their key value
  input templates_delete_key_input {
    jsontemplate: String
  }

  # input type for inserting data into table "templates"
  input templates_insert_input {
    bodyshop: bodyshops_obj_rel_insert_input
    bodyshopid: uuid
    created_at: timestamptz
    html: String
    id: uuid
    jsontemplate: jsonb
    name: String
    query: String
    updated_at: timestamptz
  }

  # aggregate max on columns
  type templates_max_fields {
    bodyshopid: uuid
    created_at: timestamptz
    html: String
    id: uuid
    name: String
    query: String
    updated_at: timestamptz
  }

  # order by max() on columns of table "templates"
  input templates_max_order_by {
    bodyshopid: order_by
    created_at: order_by
    html: order_by
    id: order_by
    name: order_by
    query: order_by
    updated_at: order_by
  }

  # aggregate min on columns
  type templates_min_fields {
    bodyshopid: uuid
    created_at: timestamptz
    html: String
    id: uuid
    name: String
    query: String
    updated_at: timestamptz
  }

  # order by min() on columns of table "templates"
  input templates_min_order_by {
    bodyshopid: order_by
    created_at: order_by
    html: order_by
    id: order_by
    name: order_by
    query: order_by
    updated_at: order_by
  }

  # response of any mutation on the table "templates"
  type templates_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [templates!]!
  }

  # input type for inserting object relation for remote table "templates"
  input templates_obj_rel_insert_input {
    data: templates_insert_input!
    on_conflict: templates_on_conflict
  }

  # on conflict condition type for table "templates"
  input templates_on_conflict {
    constraint: templates_constraint!
    update_columns: [templates_update_column!]!
    where: templates_bool_exp
  }

  # ordering options when selecting data from "templates"
  input templates_order_by {
    bodyshop: bodyshops_order_by
    bodyshopid: order_by
    created_at: order_by
    html: order_by
    id: order_by
    jsontemplate: order_by
    name: order_by
    query: order_by
    updated_at: order_by
  }

  # primary key columns input for table: "templates"
  input templates_pk_columns_input {
    id: uuid!
  }

  # prepend existing jsonb value of filtered columns with new jsonb value
  input templates_prepend_input {
    jsontemplate: jsonb
  }

  # select columns of table "templates"
  enum templates_select_column {
    # column name
    bodyshopid

    # column name
    created_at

    # column name
    html

    # column name
    id

    # column name
    jsontemplate

    # column name
    name

    # column name
    query

    # column name
    updated_at
  }

  # input type for updating data in table "templates"
  input templates_set_input {
    bodyshopid: uuid
    created_at: timestamptz
    html: String
    id: uuid
    jsontemplate: jsonb
    name: String
    query: String
    updated_at: timestamptz
  }

  # update columns of table "templates"
  enum templates_update_column {
    # column name
    bodyshopid

    # column name
    created_at

    # column name
    html

    # column name
    id

    # column name
    jsontemplate

    # column name
    name

    # column name
    query

    # column name
    updated_at
  }

  scalar timestamp

  # expression to compare columns of type timestamp. All fields are combined with logical 'AND'.
  input timestamp_comparison_exp {
    _eq: timestamp
    _gt: timestamp
    _gte: timestamp
    _in: [timestamp!]
    _is_null: Boolean
    _lt: timestamp
    _lte: timestamp
    _neq: timestamp
    _nin: [timestamp!]
  }

  scalar timestamptz

  # expression to compare columns of type timestamptz. All fields are combined with logical 'AND'.
  input timestamptz_comparison_exp {
    _eq: timestamptz
    _gt: timestamptz
    _gte: timestamptz
    _in: [timestamptz!]
    _is_null: Boolean
    _lt: timestamptz
    _lte: timestamptz
    _neq: timestamptz
    _nin: [timestamptz!]
  }

  # columns and relationships of "timetickets"
  type timetickets {
    actualhrs: numeric!

    # An object relationship
    bodyshop: bodyshops!
    bodyshopid: uuid!
    ciecacode: String
    clockoff: timestamptz
    clockon: timestamptz
    cost_center: String!
    created_at: timestamptz!
    date: date!

    # An object relationship
    employee: employees!
    employeeid: uuid!
    id: uuid!

    # An object relationship
    job: jobs
    jobid: uuid
    memo: String
    productivehrs: numeric!
    rate: numeric!
    updated_at: timestamptz!
  }

  # aggregated selection of "timetickets"
  type timetickets_aggregate {
    aggregate: timetickets_aggregate_fields
    nodes: [timetickets!]!
  }

  # aggregate fields of "timetickets"
  type timetickets_aggregate_fields {
    avg: timetickets_avg_fields
    count(columns: [timetickets_select_column!], distinct: Boolean): Int
    max: timetickets_max_fields
    min: timetickets_min_fields
    stddev: timetickets_stddev_fields
    stddev_pop: timetickets_stddev_pop_fields
    stddev_samp: timetickets_stddev_samp_fields
    sum: timetickets_sum_fields
    var_pop: timetickets_var_pop_fields
    var_samp: timetickets_var_samp_fields
    variance: timetickets_variance_fields
  }

  # order by aggregate values of table "timetickets"
  input timetickets_aggregate_order_by {
    avg: timetickets_avg_order_by
    count: order_by
    max: timetickets_max_order_by
    min: timetickets_min_order_by
    stddev: timetickets_stddev_order_by
    stddev_pop: timetickets_stddev_pop_order_by
    stddev_samp: timetickets_stddev_samp_order_by
    sum: timetickets_sum_order_by
    var_pop: timetickets_var_pop_order_by
    var_samp: timetickets_var_samp_order_by
    variance: timetickets_variance_order_by
  }

  # input type for inserting array relation for remote table "timetickets"
  input timetickets_arr_rel_insert_input {
    data: [timetickets_insert_input!]!
    on_conflict: timetickets_on_conflict
  }

  # aggregate avg on columns
  type timetickets_avg_fields {
    actualhrs: Float
    productivehrs: Float
    rate: Float
  }

  # order by avg() on columns of table "timetickets"
  input timetickets_avg_order_by {
    actualhrs: order_by
    productivehrs: order_by
    rate: order_by
  }

  # Boolean expression to filter rows from the table "timetickets". All fields are combined with a logical 'AND'.
  input timetickets_bool_exp {
    _and: [timetickets_bool_exp]
    _not: timetickets_bool_exp
    _or: [timetickets_bool_exp]
    actualhrs: numeric_comparison_exp
    bodyshop: bodyshops_bool_exp
    bodyshopid: uuid_comparison_exp
    ciecacode: String_comparison_exp
    clockoff: timestamptz_comparison_exp
    clockon: timestamptz_comparison_exp
    cost_center: String_comparison_exp
    created_at: timestamptz_comparison_exp
    date: date_comparison_exp
    employee: employees_bool_exp
    employeeid: uuid_comparison_exp
    id: uuid_comparison_exp
    job: jobs_bool_exp
    jobid: uuid_comparison_exp
    memo: String_comparison_exp
    productivehrs: numeric_comparison_exp
    rate: numeric_comparison_exp
    updated_at: timestamptz_comparison_exp
  }

  # unique or primary key constraints on table "timetickets"
  enum timetickets_constraint {
    # unique or primary key constraint
    timetickets_pkey
  }

  # input type for incrementing integer column in table "timetickets"
  input timetickets_inc_input {
    actualhrs: numeric
    productivehrs: numeric
    rate: numeric
  }

  # input type for inserting data into table "timetickets"
  input timetickets_insert_input {
    actualhrs: numeric
    bodyshop: bodyshops_obj_rel_insert_input
    bodyshopid: uuid
    ciecacode: String
    clockoff: timestamptz
    clockon: timestamptz
    cost_center: String
    created_at: timestamptz
    date: date
    employee: employees_obj_rel_insert_input
    employeeid: uuid
    id: uuid
    job: jobs_obj_rel_insert_input
    jobid: uuid
    memo: String
    productivehrs: numeric
    rate: numeric
    updated_at: timestamptz
  }

  # aggregate max on columns
  type timetickets_max_fields {
    actualhrs: numeric
    bodyshopid: uuid
    ciecacode: String
    clockoff: timestamptz
    clockon: timestamptz
    cost_center: String
    created_at: timestamptz
    date: date
    employeeid: uuid
    id: uuid
    jobid: uuid
    memo: String
    productivehrs: numeric
    rate: numeric
    updated_at: timestamptz
  }

  # order by max() on columns of table "timetickets"
  input timetickets_max_order_by {
    actualhrs: order_by
    bodyshopid: order_by
    ciecacode: order_by
    clockoff: order_by
    clockon: order_by
    cost_center: order_by
    created_at: order_by
    date: order_by
    employeeid: order_by
    id: order_by
    jobid: order_by
    memo: order_by
    productivehrs: order_by
    rate: order_by
    updated_at: order_by
  }

  # aggregate min on columns
  type timetickets_min_fields {
    actualhrs: numeric
    bodyshopid: uuid
    ciecacode: String
    clockoff: timestamptz
    clockon: timestamptz
    cost_center: String
    created_at: timestamptz
    date: date
    employeeid: uuid
    id: uuid
    jobid: uuid
    memo: String
    productivehrs: numeric
    rate: numeric
    updated_at: timestamptz
  }

  # order by min() on columns of table "timetickets"
  input timetickets_min_order_by {
    actualhrs: order_by
    bodyshopid: order_by
    ciecacode: order_by
    clockoff: order_by
    clockon: order_by
    cost_center: order_by
    created_at: order_by
    date: order_by
    employeeid: order_by
    id: order_by
    jobid: order_by
    memo: order_by
    productivehrs: order_by
    rate: order_by
    updated_at: order_by
  }

  # response of any mutation on the table "timetickets"
  type timetickets_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [timetickets!]!
  }

  # input type for inserting object relation for remote table "timetickets"
  input timetickets_obj_rel_insert_input {
    data: timetickets_insert_input!
    on_conflict: timetickets_on_conflict
  }

  # on conflict condition type for table "timetickets"
  input timetickets_on_conflict {
    constraint: timetickets_constraint!
    update_columns: [timetickets_update_column!]!
    where: timetickets_bool_exp
  }

  # ordering options when selecting data from "timetickets"
  input timetickets_order_by {
    actualhrs: order_by
    bodyshop: bodyshops_order_by
    bodyshopid: order_by
    ciecacode: order_by
    clockoff: order_by
    clockon: order_by
    cost_center: order_by
    created_at: order_by
    date: order_by
    employee: employees_order_by
    employeeid: order_by
    id: order_by
    job: jobs_order_by
    jobid: order_by
    memo: order_by
    productivehrs: order_by
    rate: order_by
    updated_at: order_by
  }

  # primary key columns input for table: "timetickets"
  input timetickets_pk_columns_input {
    id: uuid!
  }

  # select columns of table "timetickets"
  enum timetickets_select_column {
    # column name
    actualhrs

    # column name
    bodyshopid

    # column name
    ciecacode

    # column name
    clockoff

    # column name
    clockon

    # column name
    cost_center

    # column name
    created_at

    # column name
    date

    # column name
    employeeid

    # column name
    id

    # column name
    jobid

    # column name
    memo

    # column name
    productivehrs

    # column name
    rate

    # column name
    updated_at
  }

  # input type for updating data in table "timetickets"
  input timetickets_set_input {
    actualhrs: numeric
    bodyshopid: uuid
    ciecacode: String
    clockoff: timestamptz
    clockon: timestamptz
    cost_center: String
    created_at: timestamptz
    date: date
    employeeid: uuid
    id: uuid
    jobid: uuid
    memo: String
    productivehrs: numeric
    rate: numeric
    updated_at: timestamptz
  }

  # aggregate stddev on columns
  type timetickets_stddev_fields {
    actualhrs: Float
    productivehrs: Float
    rate: Float
  }

  # order by stddev() on columns of table "timetickets"
  input timetickets_stddev_order_by {
    actualhrs: order_by
    productivehrs: order_by
    rate: order_by
  }

  # aggregate stddev_pop on columns
  type timetickets_stddev_pop_fields {
    actualhrs: Float
    productivehrs: Float
    rate: Float
  }

  # order by stddev_pop() on columns of table "timetickets"
  input timetickets_stddev_pop_order_by {
    actualhrs: order_by
    productivehrs: order_by
    rate: order_by
  }

  # aggregate stddev_samp on columns
  type timetickets_stddev_samp_fields {
    actualhrs: Float
    productivehrs: Float
    rate: Float
  }

  # order by stddev_samp() on columns of table "timetickets"
  input timetickets_stddev_samp_order_by {
    actualhrs: order_by
    productivehrs: order_by
    rate: order_by
  }

  # aggregate sum on columns
  type timetickets_sum_fields {
    actualhrs: numeric
    productivehrs: numeric
    rate: numeric
  }

  # order by sum() on columns of table "timetickets"
  input timetickets_sum_order_by {
    actualhrs: order_by
    productivehrs: order_by
    rate: order_by
  }

  # update columns of table "timetickets"
  enum timetickets_update_column {
    # column name
    actualhrs

    # column name
    bodyshopid

    # column name
    ciecacode

    # column name
    clockoff

    # column name
    clockon

    # column name
    cost_center

    # column name
    created_at

    # column name
    date

    # column name
    employeeid

    # column name
    id

    # column name
    jobid

    # column name
    memo

    # column name
    productivehrs

    # column name
    rate

    # column name
    updated_at
  }

  # aggregate var_pop on columns
  type timetickets_var_pop_fields {
    actualhrs: Float
    productivehrs: Float
    rate: Float
  }

  # order by var_pop() on columns of table "timetickets"
  input timetickets_var_pop_order_by {
    actualhrs: order_by
    productivehrs: order_by
    rate: order_by
  }

  # aggregate var_samp on columns
  type timetickets_var_samp_fields {
    actualhrs: Float
    productivehrs: Float
    rate: Float
  }

  # order by var_samp() on columns of table "timetickets"
  input timetickets_var_samp_order_by {
    actualhrs: order_by
    productivehrs: order_by
    rate: order_by
  }

  # aggregate variance on columns
  type timetickets_variance_fields {
    actualhrs: Float
    productivehrs: Float
    rate: Float
  }

  # order by variance() on columns of table "timetickets"
  input timetickets_variance_order_by {
    actualhrs: order_by
    productivehrs: order_by
    rate: order_by
  }

  # columns and relationships of "users"
  type users {
    # An array relationship
    associations(
      # distinct select on columns
      distinct_on: [associations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [associations_order_by!]

      # filter the rows returned
      where: associations_bool_exp
    ): [associations!]!

    # An aggregated array relationship
    associations_aggregate(
      # distinct select on columns
      distinct_on: [associations_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [associations_order_by!]

      # filter the rows returned
      where: associations_bool_exp
    ): associations_aggregate!

    # An array relationship
    audit_trails(
      # distinct select on columns
      distinct_on: [audit_trail_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [audit_trail_order_by!]

      # filter the rows returned
      where: audit_trail_bool_exp
    ): [audit_trail!]!

    # An aggregated array relationship
    audit_trails_aggregate(
      # distinct select on columns
      distinct_on: [audit_trail_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [audit_trail_order_by!]

      # filter the rows returned
      where: audit_trail_bool_exp
    ): audit_trail_aggregate!
    authid: String!
    created_at: timestamptz!
    dashboardlayout(
      # JSON select path
      path: String
    ): jsonb!
    email: String!

    # An object relationship
    employee: employees
    fcmtokens(
      # JSON select path
      path: String
    ): jsonb

    # An array relationship
    notes(
      # distinct select on columns
      distinct_on: [notes_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [notes_order_by!]

      # filter the rows returned
      where: notes_bool_exp
    ): [notes!]!

    # An aggregated array relationship
    notes_aggregate(
      # distinct select on columns
      distinct_on: [notes_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [notes_order_by!]

      # filter the rows returned
      where: notes_bool_exp
    ): notes_aggregate!

    # An array relationship
    parts_orders(
      # distinct select on columns
      distinct_on: [parts_orders_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [parts_orders_order_by!]

      # filter the rows returned
      where: parts_orders_bool_exp
    ): [parts_orders!]!

    # An aggregated array relationship
    parts_orders_aggregate(
      # distinct select on columns
      distinct_on: [parts_orders_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [parts_orders_order_by!]

      # filter the rows returned
      where: parts_orders_bool_exp
    ): parts_orders_aggregate!
    updated_at: timestamptz!
  }

  # aggregated selection of "users"
  type users_aggregate {
    aggregate: users_aggregate_fields
    nodes: [users!]!
  }

  # aggregate fields of "users"
  type users_aggregate_fields {
    count(columns: [users_select_column!], distinct: Boolean): Int
    max: users_max_fields
    min: users_min_fields
  }

  # order by aggregate values of table "users"
  input users_aggregate_order_by {
    count: order_by
    max: users_max_order_by
    min: users_min_order_by
  }

  # append existing jsonb value of filtered columns with new jsonb value
  input users_append_input {
    dashboardlayout: jsonb
    fcmtokens: jsonb
  }

  # input type for inserting array relation for remote table "users"
  input users_arr_rel_insert_input {
    data: [users_insert_input!]!
    on_conflict: users_on_conflict
  }

  # Boolean expression to filter rows from the table "users". All fields are combined with a logical 'AND'.
  input users_bool_exp {
    _and: [users_bool_exp]
    _not: users_bool_exp
    _or: [users_bool_exp]
    associations: associations_bool_exp
    audit_trails: audit_trail_bool_exp
    authid: String_comparison_exp
    created_at: timestamptz_comparison_exp
    dashboardlayout: jsonb_comparison_exp
    email: String_comparison_exp
    employee: employees_bool_exp
    fcmtokens: jsonb_comparison_exp
    notes: notes_bool_exp
    parts_orders: parts_orders_bool_exp
    updated_at: timestamptz_comparison_exp
  }

  # unique or primary key constraints on table "users"
  enum users_constraint {
    # unique or primary key constraint
    users_pkey
  }

  # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
  input users_delete_at_path_input {
    dashboardlayout: [String]
    fcmtokens: [String]
  }

  # delete the array element with specified index (negative integers count from the
  # end). throws an error if top level container is not an array
  input users_delete_elem_input {
    dashboardlayout: Int
    fcmtokens: Int
  }

  # delete key/value pair or string element. key/value pairs are matched based on their key value
  input users_delete_key_input {
    dashboardlayout: String
    fcmtokens: String
  }

  # input type for inserting data into table "users"
  input users_insert_input {
    associations: associations_arr_rel_insert_input
    audit_trails: audit_trail_arr_rel_insert_input
    authid: String
    created_at: timestamptz
    dashboardlayout: jsonb
    email: String
    employee: employees_obj_rel_insert_input
    fcmtokens: jsonb
    notes: notes_arr_rel_insert_input
    parts_orders: parts_orders_arr_rel_insert_input
    updated_at: timestamptz
  }

  # aggregate max on columns
  type users_max_fields {
    authid: String
    created_at: timestamptz
    email: String
    updated_at: timestamptz
  }

  # order by max() on columns of table "users"
  input users_max_order_by {
    authid: order_by
    created_at: order_by
    email: order_by
    updated_at: order_by
  }

  # aggregate min on columns
  type users_min_fields {
    authid: String
    created_at: timestamptz
    email: String
    updated_at: timestamptz
  }

  # order by min() on columns of table "users"
  input users_min_order_by {
    authid: order_by
    created_at: order_by
    email: order_by
    updated_at: order_by
  }

  # response of any mutation on the table "users"
  type users_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [users!]!
  }

  # input type for inserting object relation for remote table "users"
  input users_obj_rel_insert_input {
    data: users_insert_input!
    on_conflict: users_on_conflict
  }

  # on conflict condition type for table "users"
  input users_on_conflict {
    constraint: users_constraint!
    update_columns: [users_update_column!]!
    where: users_bool_exp
  }

  # ordering options when selecting data from "users"
  input users_order_by {
    associations_aggregate: associations_aggregate_order_by
    audit_trails_aggregate: audit_trail_aggregate_order_by
    authid: order_by
    created_at: order_by
    dashboardlayout: order_by
    email: order_by
    employee: employees_order_by
    fcmtokens: order_by
    notes_aggregate: notes_aggregate_order_by
    parts_orders_aggregate: parts_orders_aggregate_order_by
    updated_at: order_by
  }

  # primary key columns input for table: "users"
  input users_pk_columns_input {
    email: String!
  }

  # prepend existing jsonb value of filtered columns with new jsonb value
  input users_prepend_input {
    dashboardlayout: jsonb
    fcmtokens: jsonb
  }

  # select columns of table "users"
  enum users_select_column {
    # column name
    authid

    # column name
    created_at

    # column name
    dashboardlayout

    # column name
    email

    # column name
    fcmtokens

    # column name
    updated_at
  }

  # input type for updating data in table "users"
  input users_set_input {
    authid: String
    created_at: timestamptz
    dashboardlayout: jsonb
    email: String
    fcmtokens: jsonb
    updated_at: timestamptz
  }

  # update columns of table "users"
  enum users_update_column {
    # column name
    authid

    # column name
    created_at

    # column name
    dashboardlayout

    # column name
    email

    # column name
    fcmtokens

    # column name
    updated_at
  }

  scalar uuid

  # expression to compare columns of type uuid. All fields are combined with logical 'AND'.
  input uuid_comparison_exp {
    _eq: uuid
    _gt: uuid
    _gte: uuid
    _in: [uuid!]
    _is_null: Boolean
    _lt: uuid
    _lte: uuid
    _neq: uuid
    _nin: [uuid!]
  }

  # columns and relationships of "vehicles"
  type vehicles {
    # An object relationship
    bodyshop: bodyshops!
    created_at: timestamptz!
    db_v_code: String
    id: uuid!

    # An array relationship
    jobs(
      # distinct select on columns
      distinct_on: [jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [jobs_order_by!]

      # filter the rows returned
      where: jobs_bool_exp
    ): [jobs!]!

    # An aggregated array relationship
    jobs_aggregate(
      # distinct select on columns
      distinct_on: [jobs_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [jobs_order_by!]

      # filter the rows returned
      where: jobs_bool_exp
    ): jobs_aggregate!
    plate_no: String
    plate_st: String
    shopid: uuid!
    trim_color: String
    updated_at: timestamptz!
    v_bstyle: String
    v_color: String
    v_cond: String
    v_engine: String
    v_make_desc: String
    v_makecode: String
    v_mldgcode: String
    v_model_desc: String
    v_model_yr: String
    v_options: String
    v_paint_codes(
      # JSON select path
      path: String
    ): jsonb
    v_prod_dt: String
    v_stage: String
    v_tone: String
    v_trimcode: String
    v_type: String
    v_vin: String!
  }

  # aggregated selection of "vehicles"
  type vehicles_aggregate {
    aggregate: vehicles_aggregate_fields
    nodes: [vehicles!]!
  }

  # aggregate fields of "vehicles"
  type vehicles_aggregate_fields {
    count(columns: [vehicles_select_column!], distinct: Boolean): Int
    max: vehicles_max_fields
    min: vehicles_min_fields
  }

  # order by aggregate values of table "vehicles"
  input vehicles_aggregate_order_by {
    count: order_by
    max: vehicles_max_order_by
    min: vehicles_min_order_by
  }

  # append existing jsonb value of filtered columns with new jsonb value
  input vehicles_append_input {
    v_paint_codes: jsonb
  }

  # input type for inserting array relation for remote table "vehicles"
  input vehicles_arr_rel_insert_input {
    data: [vehicles_insert_input!]!
    on_conflict: vehicles_on_conflict
  }

  # Boolean expression to filter rows from the table "vehicles". All fields are combined with a logical 'AND'.
  input vehicles_bool_exp {
    _and: [vehicles_bool_exp]
    _not: vehicles_bool_exp
    _or: [vehicles_bool_exp]
    bodyshop: bodyshops_bool_exp
    created_at: timestamptz_comparison_exp
    db_v_code: String_comparison_exp
    id: uuid_comparison_exp
    jobs: jobs_bool_exp
    plate_no: String_comparison_exp
    plate_st: String_comparison_exp
    shopid: uuid_comparison_exp
    trim_color: String_comparison_exp
    updated_at: timestamptz_comparison_exp
    v_bstyle: String_comparison_exp
    v_color: String_comparison_exp
    v_cond: String_comparison_exp
    v_engine: String_comparison_exp
    v_make_desc: String_comparison_exp
    v_makecode: String_comparison_exp
    v_mldgcode: String_comparison_exp
    v_model_desc: String_comparison_exp
    v_model_yr: String_comparison_exp
    v_options: String_comparison_exp
    v_paint_codes: jsonb_comparison_exp
    v_prod_dt: String_comparison_exp
    v_stage: String_comparison_exp
    v_tone: String_comparison_exp
    v_trimcode: String_comparison_exp
    v_type: String_comparison_exp
    v_vin: String_comparison_exp
  }

  # unique or primary key constraints on table "vehicles"
  enum vehicles_constraint {
    # unique or primary key constraint
    vehicles_pkey

    # unique or primary key constraint
    vehicles_v_vin_shopid_key
  }

  # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
  input vehicles_delete_at_path_input {
    v_paint_codes: [String]
  }

  # delete the array element with specified index (negative integers count from the
  # end). throws an error if top level container is not an array
  input vehicles_delete_elem_input {
    v_paint_codes: Int
  }

  # delete key/value pair or string element. key/value pairs are matched based on their key value
  input vehicles_delete_key_input {
    v_paint_codes: String
  }

  # input type for inserting data into table "vehicles"
  input vehicles_insert_input {
    bodyshop: bodyshops_obj_rel_insert_input
    created_at: timestamptz
    db_v_code: String
    id: uuid
    jobs: jobs_arr_rel_insert_input
    plate_no: String
    plate_st: String
    shopid: uuid
    trim_color: String
    updated_at: timestamptz
    v_bstyle: String
    v_color: String
    v_cond: String
    v_engine: String
    v_make_desc: String
    v_makecode: String
    v_mldgcode: String
    v_model_desc: String
    v_model_yr: String
    v_options: String
    v_paint_codes: jsonb
    v_prod_dt: String
    v_stage: String
    v_tone: String
    v_trimcode: String
    v_type: String
    v_vin: String
  }

  # aggregate max on columns
  type vehicles_max_fields {
    created_at: timestamptz
    db_v_code: String
    id: uuid
    plate_no: String
    plate_st: String
    shopid: uuid
    trim_color: String
    updated_at: timestamptz
    v_bstyle: String
    v_color: String
    v_cond: String
    v_engine: String
    v_make_desc: String
    v_makecode: String
    v_mldgcode: String
    v_model_desc: String
    v_model_yr: String
    v_options: String
    v_prod_dt: String
    v_stage: String
    v_tone: String
    v_trimcode: String
    v_type: String
    v_vin: String
  }

  # order by max() on columns of table "vehicles"
  input vehicles_max_order_by {
    created_at: order_by
    db_v_code: order_by
    id: order_by
    plate_no: order_by
    plate_st: order_by
    shopid: order_by
    trim_color: order_by
    updated_at: order_by
    v_bstyle: order_by
    v_color: order_by
    v_cond: order_by
    v_engine: order_by
    v_make_desc: order_by
    v_makecode: order_by
    v_mldgcode: order_by
    v_model_desc: order_by
    v_model_yr: order_by
    v_options: order_by
    v_prod_dt: order_by
    v_stage: order_by
    v_tone: order_by
    v_trimcode: order_by
    v_type: order_by
    v_vin: order_by
  }

  # aggregate min on columns
  type vehicles_min_fields {
    created_at: timestamptz
    db_v_code: String
    id: uuid
    plate_no: String
    plate_st: String
    shopid: uuid
    trim_color: String
    updated_at: timestamptz
    v_bstyle: String
    v_color: String
    v_cond: String
    v_engine: String
    v_make_desc: String
    v_makecode: String
    v_mldgcode: String
    v_model_desc: String
    v_model_yr: String
    v_options: String
    v_prod_dt: String
    v_stage: String
    v_tone: String
    v_trimcode: String
    v_type: String
    v_vin: String
  }

  # order by min() on columns of table "vehicles"
  input vehicles_min_order_by {
    created_at: order_by
    db_v_code: order_by
    id: order_by
    plate_no: order_by
    plate_st: order_by
    shopid: order_by
    trim_color: order_by
    updated_at: order_by
    v_bstyle: order_by
    v_color: order_by
    v_cond: order_by
    v_engine: order_by
    v_make_desc: order_by
    v_makecode: order_by
    v_mldgcode: order_by
    v_model_desc: order_by
    v_model_yr: order_by
    v_options: order_by
    v_prod_dt: order_by
    v_stage: order_by
    v_tone: order_by
    v_trimcode: order_by
    v_type: order_by
    v_vin: order_by
  }

  # response of any mutation on the table "vehicles"
  type vehicles_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [vehicles!]!
  }

  # input type for inserting object relation for remote table "vehicles"
  input vehicles_obj_rel_insert_input {
    data: vehicles_insert_input!
    on_conflict: vehicles_on_conflict
  }

  # on conflict condition type for table "vehicles"
  input vehicles_on_conflict {
    constraint: vehicles_constraint!
    update_columns: [vehicles_update_column!]!
    where: vehicles_bool_exp
  }

  # ordering options when selecting data from "vehicles"
  input vehicles_order_by {
    bodyshop: bodyshops_order_by
    created_at: order_by
    db_v_code: order_by
    id: order_by
    jobs_aggregate: jobs_aggregate_order_by
    plate_no: order_by
    plate_st: order_by
    shopid: order_by
    trim_color: order_by
    updated_at: order_by
    v_bstyle: order_by
    v_color: order_by
    v_cond: order_by
    v_engine: order_by
    v_make_desc: order_by
    v_makecode: order_by
    v_mldgcode: order_by
    v_model_desc: order_by
    v_model_yr: order_by
    v_options: order_by
    v_paint_codes: order_by
    v_prod_dt: order_by
    v_stage: order_by
    v_tone: order_by
    v_trimcode: order_by
    v_type: order_by
    v_vin: order_by
  }

  # primary key columns input for table: "vehicles"
  input vehicles_pk_columns_input {
    id: uuid!
  }

  # prepend existing jsonb value of filtered columns with new jsonb value
  input vehicles_prepend_input {
    v_paint_codes: jsonb
  }

  # select columns of table "vehicles"
  enum vehicles_select_column {
    # column name
    created_at

    # column name
    db_v_code

    # column name
    id

    # column name
    plate_no

    # column name
    plate_st

    # column name
    shopid

    # column name
    trim_color

    # column name
    updated_at

    # column name
    v_bstyle

    # column name
    v_color

    # column name
    v_cond

    # column name
    v_engine

    # column name
    v_make_desc

    # column name
    v_makecode

    # column name
    v_mldgcode

    # column name
    v_model_desc

    # column name
    v_model_yr

    # column name
    v_options

    # column name
    v_paint_codes

    # column name
    v_prod_dt

    # column name
    v_stage

    # column name
    v_tone

    # column name
    v_trimcode

    # column name
    v_type

    # column name
    v_vin
  }

  # input type for updating data in table "vehicles"
  input vehicles_set_input {
    created_at: timestamptz
    db_v_code: String
    id: uuid
    plate_no: String
    plate_st: String
    shopid: uuid
    trim_color: String
    updated_at: timestamptz
    v_bstyle: String
    v_color: String
    v_cond: String
    v_engine: String
    v_make_desc: String
    v_makecode: String
    v_mldgcode: String
    v_model_desc: String
    v_model_yr: String
    v_options: String
    v_paint_codes: jsonb
    v_prod_dt: String
    v_stage: String
    v_tone: String
    v_trimcode: String
    v_type: String
    v_vin: String
  }

  # update columns of table "vehicles"
  enum vehicles_update_column {
    # column name
    created_at

    # column name
    db_v_code

    # column name
    id

    # column name
    plate_no

    # column name
    plate_st

    # column name
    shopid

    # column name
    trim_color

    # column name
    updated_at

    # column name
    v_bstyle

    # column name
    v_color

    # column name
    v_cond

    # column name
    v_engine

    # column name
    v_make_desc

    # column name
    v_makecode

    # column name
    v_mldgcode

    # column name
    v_model_desc

    # column name
    v_model_yr

    # column name
    v_options

    # column name
    v_paint_codes

    # column name
    v_prod_dt

    # column name
    v_stage

    # column name
    v_tone

    # column name
    v_trimcode

    # column name
    v_type

    # column name
    v_vin
  }

  # columns and relationships of "vendors"
  type vendors {
    # An object relationship
    bodyshop: bodyshops!
    bodyshopid: uuid!
    city: String
    cost_center: String!
    country: String
    created_at: timestamptz!
    discount: numeric!
    display_name: String
    due_date: Int
    email: String
    favorite(
      # JSON select path
      path: String
    ): jsonb
    id: uuid!

    # An array relationship
    invoices(
      # distinct select on columns
      distinct_on: [invoices_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [invoices_order_by!]

      # filter the rows returned
      where: invoices_bool_exp
    ): [invoices!]!

    # An aggregated array relationship
    invoices_aggregate(
      # distinct select on columns
      distinct_on: [invoices_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [invoices_order_by!]

      # filter the rows returned
      where: invoices_bool_exp
    ): invoices_aggregate!
    name: String!

    # An array relationship
    parts_orders(
      # distinct select on columns
      distinct_on: [parts_orders_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [parts_orders_order_by!]

      # filter the rows returned
      where: parts_orders_bool_exp
    ): [parts_orders!]!

    # An aggregated array relationship
    parts_orders_aggregate(
      # distinct select on columns
      distinct_on: [parts_orders_select_column!]

      # limit the number of rows returned
      limit: Int

      # skip the first n rows. Use only with order_by
      offset: Int

      # sort the rows by one or more columns
      order_by: [parts_orders_order_by!]

      # filter the rows returned
      where: parts_orders_bool_exp
    ): parts_orders_aggregate!
    prompt_discount: numeric!
    state: String
    street1: String
    street2: String
    taxid: String
    terms: String
    updated_at: timestamptz!
    zip: String
  }

  # aggregated selection of "vendors"
  type vendors_aggregate {
    aggregate: vendors_aggregate_fields
    nodes: [vendors!]!
  }

  # aggregate fields of "vendors"
  type vendors_aggregate_fields {
    avg: vendors_avg_fields
    count(columns: [vendors_select_column!], distinct: Boolean): Int
    max: vendors_max_fields
    min: vendors_min_fields
    stddev: vendors_stddev_fields
    stddev_pop: vendors_stddev_pop_fields
    stddev_samp: vendors_stddev_samp_fields
    sum: vendors_sum_fields
    var_pop: vendors_var_pop_fields
    var_samp: vendors_var_samp_fields
    variance: vendors_variance_fields
  }

  # order by aggregate values of table "vendors"
  input vendors_aggregate_order_by {
    avg: vendors_avg_order_by
    count: order_by
    max: vendors_max_order_by
    min: vendors_min_order_by
    stddev: vendors_stddev_order_by
    stddev_pop: vendors_stddev_pop_order_by
    stddev_samp: vendors_stddev_samp_order_by
    sum: vendors_sum_order_by
    var_pop: vendors_var_pop_order_by
    var_samp: vendors_var_samp_order_by
    variance: vendors_variance_order_by
  }

  # append existing jsonb value of filtered columns with new jsonb value
  input vendors_append_input {
    favorite: jsonb
  }

  # input type for inserting array relation for remote table "vendors"
  input vendors_arr_rel_insert_input {
    data: [vendors_insert_input!]!
    on_conflict: vendors_on_conflict
  }

  # aggregate avg on columns
  type vendors_avg_fields {
    discount: Float
    due_date: Float
    prompt_discount: Float
  }

  # order by avg() on columns of table "vendors"
  input vendors_avg_order_by {
    discount: order_by
    due_date: order_by
    prompt_discount: order_by
  }

  # Boolean expression to filter rows from the table "vendors". All fields are combined with a logical 'AND'.
  input vendors_bool_exp {
    _and: [vendors_bool_exp]
    _not: vendors_bool_exp
    _or: [vendors_bool_exp]
    bodyshop: bodyshops_bool_exp
    bodyshopid: uuid_comparison_exp
    city: String_comparison_exp
    cost_center: String_comparison_exp
    country: String_comparison_exp
    created_at: timestamptz_comparison_exp
    discount: numeric_comparison_exp
    display_name: String_comparison_exp
    due_date: Int_comparison_exp
    email: String_comparison_exp
    favorite: jsonb_comparison_exp
    id: uuid_comparison_exp
    invoices: invoices_bool_exp
    name: String_comparison_exp
    parts_orders: parts_orders_bool_exp
    prompt_discount: numeric_comparison_exp
    state: String_comparison_exp
    street1: String_comparison_exp
    street2: String_comparison_exp
    taxid: String_comparison_exp
    terms: String_comparison_exp
    updated_at: timestamptz_comparison_exp
    zip: String_comparison_exp
  }

  # unique or primary key constraints on table "vendors"
  enum vendors_constraint {
    # unique or primary key constraint
    vendors_pkey
  }

  # delete the field or element with specified path (for JSON arrays, negative integers count from the end)
  input vendors_delete_at_path_input {
    favorite: [String]
  }

  # delete the array element with specified index (negative integers count from the
  # end). throws an error if top level container is not an array
  input vendors_delete_elem_input {
    favorite: Int
  }

  # delete key/value pair or string element. key/value pairs are matched based on their key value
  input vendors_delete_key_input {
    favorite: String
  }

  # input type for incrementing integer column in table "vendors"
  input vendors_inc_input {
    discount: numeric
    due_date: Int
    prompt_discount: numeric
  }

  # input type for inserting data into table "vendors"
  input vendors_insert_input {
    bodyshop: bodyshops_obj_rel_insert_input
    bodyshopid: uuid
    city: String
    cost_center: String
    country: String
    created_at: timestamptz
    discount: numeric
    display_name: String
    due_date: Int
    email: String
    favorite: jsonb
    id: uuid
    invoices: invoices_arr_rel_insert_input
    name: String
    parts_orders: parts_orders_arr_rel_insert_input
    prompt_discount: numeric
    state: String
    street1: String
    street2: String
    taxid: String
    terms: String
    updated_at: timestamptz
    zip: String
  }

  # aggregate max on columns
  type vendors_max_fields {
    bodyshopid: uuid
    city: String
    cost_center: String
    country: String
    created_at: timestamptz
    discount: numeric
    display_name: String
    due_date: Int
    email: String
    id: uuid
    name: String
    prompt_discount: numeric
    state: String
    street1: String
    street2: String
    taxid: String
    terms: String
    updated_at: timestamptz
    zip: String
  }

  # order by max() on columns of table "vendors"
  input vendors_max_order_by {
    bodyshopid: order_by
    city: order_by
    cost_center: order_by
    country: order_by
    created_at: order_by
    discount: order_by
    display_name: order_by
    due_date: order_by
    email: order_by
    id: order_by
    name: order_by
    prompt_discount: order_by
    state: order_by
    street1: order_by
    street2: order_by
    taxid: order_by
    terms: order_by
    updated_at: order_by
    zip: order_by
  }

  # aggregate min on columns
  type vendors_min_fields {
    bodyshopid: uuid
    city: String
    cost_center: String
    country: String
    created_at: timestamptz
    discount: numeric
    display_name: String
    due_date: Int
    email: String
    id: uuid
    name: String
    prompt_discount: numeric
    state: String
    street1: String
    street2: String
    taxid: String
    terms: String
    updated_at: timestamptz
    zip: String
  }

  # order by min() on columns of table "vendors"
  input vendors_min_order_by {
    bodyshopid: order_by
    city: order_by
    cost_center: order_by
    country: order_by
    created_at: order_by
    discount: order_by
    display_name: order_by
    due_date: order_by
    email: order_by
    id: order_by
    name: order_by
    prompt_discount: order_by
    state: order_by
    street1: order_by
    street2: order_by
    taxid: order_by
    terms: order_by
    updated_at: order_by
    zip: order_by
  }

  # response of any mutation on the table "vendors"
  type vendors_mutation_response {
    # number of affected rows by the mutation
    affected_rows: Int!

    # data of the affected rows by the mutation
    returning: [vendors!]!
  }

  # input type for inserting object relation for remote table "vendors"
  input vendors_obj_rel_insert_input {
    data: vendors_insert_input!
    on_conflict: vendors_on_conflict
  }

  # on conflict condition type for table "vendors"
  input vendors_on_conflict {
    constraint: vendors_constraint!
    update_columns: [vendors_update_column!]!
    where: vendors_bool_exp
  }

  # ordering options when selecting data from "vendors"
  input vendors_order_by {
    bodyshop: bodyshops_order_by
    bodyshopid: order_by
    city: order_by
    cost_center: order_by
    country: order_by
    created_at: order_by
    discount: order_by
    display_name: order_by
    due_date: order_by
    email: order_by
    favorite: order_by
    id: order_by
    invoices_aggregate: invoices_aggregate_order_by
    name: order_by
    parts_orders_aggregate: parts_orders_aggregate_order_by
    prompt_discount: order_by
    state: order_by
    street1: order_by
    street2: order_by
    taxid: order_by
    terms: order_by
    updated_at: order_by
    zip: order_by
  }

  # primary key columns input for table: "vendors"
  input vendors_pk_columns_input {
    id: uuid!
  }

  # prepend existing jsonb value of filtered columns with new jsonb value
  input vendors_prepend_input {
    favorite: jsonb
  }

  # select columns of table "vendors"
  enum vendors_select_column {
    # column name
    bodyshopid

    # column name
    city

    # column name
    cost_center

    # column name
    country

    # column name
    created_at

    # column name
    discount

    # column name
    display_name

    # column name
    due_date

    # column name
    email

    # column name
    favorite

    # column name
    id

    # column name
    name

    # column name
    prompt_discount

    # column name
    state

    # column name
    street1

    # column name
    street2

    # column name
    taxid

    # column name
    terms

    # column name
    updated_at

    # column name
    zip
  }

  # input type for updating data in table "vendors"
  input vendors_set_input {
    bodyshopid: uuid
    city: String
    cost_center: String
    country: String
    created_at: timestamptz
    discount: numeric
    display_name: String
    due_date: Int
    email: String
    favorite: jsonb
    id: uuid
    name: String
    prompt_discount: numeric
    state: String
    street1: String
    street2: String
    taxid: String
    terms: String
    updated_at: timestamptz
    zip: String
  }

  # aggregate stddev on columns
  type vendors_stddev_fields {
    discount: Float
    due_date: Float
    prompt_discount: Float
  }

  # order by stddev() on columns of table "vendors"
  input vendors_stddev_order_by {
    discount: order_by
    due_date: order_by
    prompt_discount: order_by
  }

  # aggregate stddev_pop on columns
  type vendors_stddev_pop_fields {
    discount: Float
    due_date: Float
    prompt_discount: Float
  }

  # order by stddev_pop() on columns of table "vendors"
  input vendors_stddev_pop_order_by {
    discount: order_by
    due_date: order_by
    prompt_discount: order_by
  }

  # aggregate stddev_samp on columns
  type vendors_stddev_samp_fields {
    discount: Float
    due_date: Float
    prompt_discount: Float
  }

  # order by stddev_samp() on columns of table "vendors"
  input vendors_stddev_samp_order_by {
    discount: order_by
    due_date: order_by
    prompt_discount: order_by
  }

  # aggregate sum on columns
  type vendors_sum_fields {
    discount: numeric
    due_date: Int
    prompt_discount: numeric
  }

  # order by sum() on columns of table "vendors"
  input vendors_sum_order_by {
    discount: order_by
    due_date: order_by
    prompt_discount: order_by
  }

  # update columns of table "vendors"
  enum vendors_update_column {
    # column name
    bodyshopid

    # column name
    city

    # column name
    cost_center

    # column name
    country

    # column name
    created_at

    # column name
    discount

    # column name
    display_name

    # column name
    due_date

    # column name
    email

    # column name
    favorite

    # column name
    id

    # column name
    name

    # column name
    prompt_discount

    # column name
    state

    # column name
    street1

    # column name
    street2

    # column name
    taxid

    # column name
    terms

    # column name
    updated_at

    # column name
    zip
  }

  # aggregate var_pop on columns
  type vendors_var_pop_fields {
    discount: Float
    due_date: Float
    prompt_discount: Float
  }

  # order by var_pop() on columns of table "vendors"
  input vendors_var_pop_order_by {
    discount: order_by
    due_date: order_by
    prompt_discount: order_by
  }

  # aggregate var_samp on columns
  type vendors_var_samp_fields {
    discount: Float
    due_date: Float
    prompt_discount: Float
  }

  # order by var_samp() on columns of table "vendors"
  input vendors_var_samp_order_by {
    discount: order_by
    due_date: order_by
    prompt_discount: order_by
  }

  # aggregate variance on columns
  type vendors_variance_fields {
    discount: Float
    due_date: Float
    prompt_discount: Float
  }

  # order by variance() on columns of table "vendors"
  input vendors_variance_order_by {
    discount: order_by
    due_date: order_by
    prompt_discount: order_by
  }
`);
