// This file is auto-generated by @hey-api/openapi-ts

export const $Action = {
    properties: {
        name: {
            type: 'string',
            title: 'Name'
        },
        roles: {
            items: {
                type: 'string'
            },
            type: 'array',
            title: 'Roles'
        },
        params: {
            items: {
                '$ref': '#/components/schemas/ActionParam'
            },
            type: 'array',
            title: 'Params'
        }
    },
    type: 'object',
    required: ['name', 'roles', 'params'],
    title: 'Action'
} as const;

export const $ActionParam = {
    properties: {
        name: {
            type: 'string',
            title: 'Name'
        },
        type: {
            type: 'string',
            title: 'Type'
        },
        dflt: {
            type: 'string',
            title: 'Dflt'
        }
    },
    type: 'object',
    required: ['name', 'type', 'dflt'],
    title: 'ActionParam'
} as const;

export const $ActionResult = {
    properties: {
        message: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Message'
        },
        taggedLayers: {
            items: {
                '$ref': '#/components/schemas/TaggedLayer'
            },
            type: 'array',
            title: 'Taggedlayers',
            default: []
        }
    },
    type: 'object',
    title: 'ActionResult'
} as const;

export const $ActionResults = {
    properties: {
        name: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Name'
        },
        message: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Message'
        },
        actionResults: {
            items: {
                '$ref': '#/components/schemas/ActionResult'
            },
            type: 'array',
            title: 'Actionresults',
            default: []
        }
    },
    type: 'object',
    title: 'ActionResults'
} as const;

export const $ActionsResults = {
    properties: {
        message: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Message'
        },
        actionResults: {
            items: {
                '$ref': '#/components/schemas/ActionResults'
            },
            type: 'array',
            title: 'Actionresults',
            default: []
        }
    },
    type: 'object',
    title: 'ActionsResults'
} as const;

export const $ActionsStore = {
    properties: {
        store: {
            type: 'string',
            title: 'Store'
        },
        actions: {
            items: {
                '$ref': '#/components/schemas/Action'
            },
            type: 'array',
            title: 'Actions'
        }
    },
    type: 'object',
    required: ['store', 'actions'],
    title: 'ActionsStore'
} as const;

export const $AdminBasket = {
    properties: {
        name: {
            type: 'string',
            title: 'Name'
        },
        files: {
            items: {
                '$ref': '#/components/schemas/FileImport'
            },
            type: 'array',
            title: 'Files'
        },
        columns: {
            items: {
                type: 'string'
            },
            type: 'array',
            title: 'Columns'
        },
        uploadFields: {
            items: {
                type: 'string'
            },
            type: 'array',
            title: 'Uploadfields'
        },
        projects: {
            items: {
                '$ref': '#/components/schemas/Project'
            },
            type: 'array',
            title: 'Projects',
            default: []
        }
    },
    type: 'object',
    required: ['name', 'files', 'columns', 'uploadFields'],
    title: 'AdminBasket'
} as const;

export const $Attachment = {
    properties: {
        name: {
            type: 'string',
            title: 'Name'
        },
        path: {
            type: 'string',
            title: 'Path'
        }
    },
    type: 'object',
    required: ['name', 'path'],
    title: 'Attachment'
} as const;

export const $BaseMapWithStores = {
    properties: {
        name: {
            type: 'string',
            title: 'Name'
        },
        stores: {
            items: {
                type: 'string'
            },
            type: 'array',
            title: 'Stores'
        }
    },
    type: 'object',
    required: ['name', 'stores'],
    title: 'BaseMapWithStores'
} as const;

export const $BaseStyle = {
    properties: {
        id: {
            anyOf: [
                {
                    type: 'integer'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Id'
        },
        name: {
            type: 'string',
            title: 'Name'
        },
        style: {
            anyOf: [
                {
                    type: 'object'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Style'
        },
        mbtiles: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Mbtiles'
        },
        static_url: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Static Url'
        },
        enabled: {
            type: 'boolean',
            title: 'Enabled',
            default: true
        }
    },
    type: 'object',
    required: ['name'],
    title: 'BaseStyle'
} as const;

export const $BasketDefault = {
    properties: {
        surveyor: {
            type: 'string',
            title: 'Surveyor',
            default: 'Default surveyor'
        },
        equipment: {
            type: 'string',
            title: 'Equipment',
            default: 'Default equipment'
        },
        project: {
            type: 'string',
            title: 'Project',
            default: 'Default project'
        },
        status: {
            type: 'string',
            title: 'Status',
            default: 'E'
        },
        store: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Store'
        }
    },
    type: 'object',
    title: 'BasketDefault'
} as const;

export const $BasketImportResult = {
    properties: {
        time: {
            type: 'string',
            format: 'date-time',
            title: 'Time'
        },
        message: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Message'
        },
        details: {
            anyOf: [
                {
                    additionalProperties: {
                        anyOf: [
                            {
                                type: 'string'
                            },
                            {
                                type: 'integer'
                            },
                            {
                                type: 'number'
                            },
                            {
                                type: 'boolean'
                            }
                        ]
                    },
                    type: 'object'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Details'
        },
        fileImport: {
            anyOf: [
                {
                    '$ref': '#/components/schemas/FileImport'
                },
                {
                    type: 'null'
                }
            ]
        }
    },
    type: 'object',
    title: 'BasketImportResult'
} as const;

export const $BasketNameOnly = {
    properties: {
        name: {
            type: 'string',
            title: 'Name'
        }
    },
    type: 'object',
    required: ['name'],
    title: 'BasketNameOnly'
} as const;

export const $Body_execute_tag_action_api_execTagActions_post = {
    properties: {
        stores: {
            items: {
                type: 'string'
            },
            type: 'array',
            title: 'Stores'
        },
        ids: {
            items: {
                items: {
                    type: 'string'
                },
                type: 'array'
            },
            type: 'array',
            title: 'Ids'
        },
        actionNames: {
            items: {
                type: 'string'
            },
            type: 'array',
            title: 'Actionnames'
        },
        params: {
            items: {
                anyOf: [
                    {
                        '$ref': '#/components/schemas/ActionParam'
                    },
                    {
                        type: 'null'
                    }
                ]
            },
            type: 'array',
            title: 'Params'
        },
        formFields: {
            items: {
                '$ref': '#/components/schemas/FormFieldInput'
            },
            type: 'array',
            title: 'Formfields'
        }
    },
    type: 'object',
    required: ['stores', 'ids', 'actionNames', 'params', 'formFields'],
    title: 'Body_execute_tag_action_api_execTagActions_post'
} as const;

export const $Body_login_for_access_token_api_token_post = {
    properties: {
        grant_type: {
            anyOf: [
                {
                    type: 'string',
                    pattern: 'password'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Grant Type'
        },
        username: {
            type: 'string',
            title: 'Username'
        },
        password: {
            type: 'string',
            title: 'Password'
        },
        scope: {
            type: 'string',
            title: 'Scope',
            default: ''
        },
        client_id: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Client Id'
        },
        client_secret: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Client Secret'
        }
    },
    type: 'object',
    required: ['username', 'password'],
    title: 'Body_login_for_access_token_api_token_post'
} as const;

export const $Body_upload_basket_file_api_admin_basket_upload__name__post = {
    properties: {
        file: {
            type: 'string',
            format: 'binary',
            title: 'File'
        }
    },
    type: 'object',
    required: ['file'],
    title: 'Body_upload_basket_file_api_admin_basket_upload__name__post'
} as const;

export const $BootstrapData = {
    properties: {
        version: {
            type: 'string',
            title: 'Version',
            default: '0.6.0a0'
        },
        title: {
            type: 'string',
            title: 'Title',
            default: 'Gisaf'
        },
        windowTitle: {
            type: 'string',
            title: 'Windowtitle',
            default: 'Gisaf'
        },
        map: {
            '$ref': '#/components/schemas/Map',
            default: {
                tileServer: {
                    baseDir: '/home/phil/.local/share/gisaf/mbtiles_files_dir',
                    spriteBaseDir: '/home/phil/.local/share/gisaf/mbtiles_sprites_dir',
                    spriteBaseUrl: 'https://gisaf.example.org',
                    spriteUrl: '/tiles/sprite/sprite',
                    useRequestUrl: false
                },
                zoom: 14,
                pitch: 45,
                lat: 12,
                lng: 79.8106,
                bearing: 0,
                style: 'OpenFreeMap',
                opacity: 1,
                attribution: '',
                status: ['E', 'F', 'D'],
                defaultStatus: ['E'],
                tagKeys: ['source']
            }
        },
        geo: {
            '$ref': '#/components/schemas/Geo',
            default: {
                raw_survey: {
                    spatial_sys_ref: {
                        author: 'AVSM',
                        ellps: 'WGS84',
                        k: 1,
                        lat_0: 12.01605433,
                        lon_0: 79.80998934,
                        no_defs: true,
                        proj: 'tmerc',
                        towgs84: '0,0,0,0,0,0,0',
                        units: 'm',
                        x_0: 370455.63,
                        y_0: 1328608.994
                    },
                    srid: 910001
                },
                simplify_geom_factor: 10000000,
                simplify_preserve_topology: false,
                srid: 4326,
                srid_for_proj: 32644
            }
        },
        measures: {
            '$ref': '#/components/schemas/Measures',
            default: {}
        },
        redirect: {
            type: 'string',
            title: 'Redirect',
            default: ''
        },
        user: {
            anyOf: [
                {
                    '$ref': '#/components/schemas/UserRead'
                },
                {
                    type: 'null'
                }
            ]
        }
    },
    type: 'object',
    title: 'BootstrapData'
} as const;

export const $CategoryGroup = {
    properties: {
        name: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Name'
        },
        major: {
            type: 'boolean',
            title: 'Major'
        },
        long_name: {
            type: 'string',
            title: 'Long Name'
        }
    },
    type: 'object',
    required: ['major', 'long_name'],
    title: 'CategoryGroup'
} as const;

export const $CategoryRead = {
    properties: {
        name: {
            type: 'string',
            title: 'Name'
        },
        description: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Description'
        },
        group: {
            type: 'string',
            title: 'Group'
        },
        minor_group_1: {
            type: 'string',
            title: 'Minor Group 1',
            default: '----'
        },
        minor_group_2: {
            type: 'string',
            title: 'Minor Group 2',
            default: '----'
        },
        status: {
            type: 'string',
            title: 'Status'
        },
        custom: {
            anyOf: [
                {
                    type: 'boolean'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Custom'
        },
        auto_import: {
            type: 'boolean',
            title: 'Auto Import',
            default: true
        },
        gis_type: {
            type: 'string',
            title: 'Gis Type',
            default: 'Point'
        },
        long_name: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Long Name'
        },
        style: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Style'
        },
        symbol: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Symbol'
        },
        mapbox_type_custom: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Mapbox Type Custom'
        },
        mapbox_paint: {
            anyOf: [
                {
                    additionalProperties: {
                        anyOf: [
                            {
                                type: 'object'
                            },
                            {
                                items: {},
                                type: 'array'
                            },
                            {
                                type: 'number'
                            },
                            {
                                type: 'integer'
                            },
                            {
                                type: 'string'
                            }
                        ]
                    },
                    type: 'object'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Mapbox Paint'
        },
        mapbox_layout: {
            anyOf: [
                {
                    additionalProperties: {
                        anyOf: [
                            {
                                type: 'object'
                            },
                            {
                                items: {},
                                type: 'array'
                            },
                            {
                                type: 'number'
                            },
                            {
                                type: 'integer'
                            },
                            {
                                type: 'string'
                            }
                        ]
                    },
                    type: 'object'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Mapbox Layout'
        },
        viewable_role: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Viewable Role'
        },
        extra: {
            anyOf: [
                {
                    type: 'object'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Extra'
        },
        layer_name: {
            type: 'string',
            title: 'Layer Name',
            description: `ISO compliant layer name (see ISO 13567)
:return: str`,
            readOnly: true
        },
        table_name: {
            type: 'string',
            title: 'Table Name',
            description: `Table name
:return:`,
            readOnly: true
        },
        raw_survey_table_name: {
            type: 'string',
            title: 'Raw Survey Table Name',
            description: `Table name
:return:`,
            readOnly: true
        },
        mapbox_type: {
            type: 'string',
            title: 'Mapbox Type',
            readOnly: true
        }
    },
    type: 'object',
    required: ['name', 'description', 'group', 'status', 'custom', 'long_name', 'style', 'symbol', 'mapbox_type_custom', 'mapbox_paint', 'mapbox_layout', 'viewable_role', 'extra', 'layer_name', 'table_name', 'raw_survey_table_name', 'mapbox_type'],
    title: 'CategoryRead'
} as const;

export const $Dashboard = {
    properties: {
        name: {
            type: 'string',
            title: 'Name'
        },
        group: {
            type: 'string',
            title: 'Group'
        },
        description: {
            type: 'string',
            title: 'Description'
        },
        time: {
            anyOf: [
                {
                    type: 'string',
                    format: 'date-time'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Time'
        },
        html: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Html'
        },
        attachment: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Attachment'
        },
        dfData: {
            items: {},
            type: 'array',
            title: 'Dfdata',
            default: []
        },
        plotData: {
            anyOf: [
                {
                    items: {
                        type: 'object'
                    },
                    type: 'array'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Plotdata'
        },
        plotLayout: {
            anyOf: [
                {
                    type: 'object'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Plotlayout'
        },
        notebook: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Notebook'
        },
        expandedPanes: {
            anyOf: [
                {
                    items: {
                        type: 'string'
                    },
                    type: 'array'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Expandedpanes'
        },
        sections: {
            anyOf: [
                {
                    items: {
                        '$ref': '#/components/schemas/DashboardSection'
                    },
                    type: 'array'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Sections'
        }
    },
    type: 'object',
    required: ['name', 'group', 'description'],
    title: 'Dashboard'
} as const;

export const $DashboardGroup = {
    properties: {
        name: {
            type: 'string',
            title: 'Name'
        },
        pages: {
            items: {
                '$ref': '#/components/schemas/DashboardPageMetaData'
            },
            type: 'array',
            title: 'Pages'
        }
    },
    type: 'object',
    required: ['name', 'pages'],
    title: 'DashboardGroup'
} as const;

export const $DashboardHome = {
    properties: {
        title: {
            type: 'string',
            title: 'Title'
        },
        content: {
            type: 'string',
            title: 'Content'
        },
        footer: {
            type: 'string',
            title: 'Footer'
        }
    },
    type: 'object',
    required: ['title', 'content', 'footer'],
    title: 'DashboardHome'
} as const;

export const $DashboardPageMetaData = {
    properties: {
        name: {
            type: 'string',
            title: 'Name'
        },
        group: {
            type: 'string',
            title: 'Group'
        },
        description: {
            type: 'string',
            title: 'Description'
        },
        viewable_role: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Viewable Role'
        }
    },
    type: 'object',
    required: ['name', 'group', 'description'],
    title: 'DashboardPageMetaData'
} as const;

export const $DashboardSection = {
    properties: {
        name: {
            type: 'string',
            title: 'Name'
        },
        plot: {
            type: 'string',
            title: 'Plot'
        }
    },
    type: 'object',
    required: ['name', 'plot'],
    title: 'DashboardSection'
} as const;

export const $DataProvider = {
    properties: {
        store: {
            type: 'string',
            title: 'Store'
        },
        name: {
            type: 'string',
            title: 'Name'
        },
        values: {
            items: {
                type: 'string'
            },
            type: 'array',
            title: 'Values'
        }
    },
    type: 'object',
    required: ['store', 'name', 'values'],
    title: 'DataProvider'
} as const;

export const $Downloader = {
    properties: {
        roles: {
            items: {
                type: 'string'
            },
            type: 'array',
            title: 'Roles',
            default: []
        },
        name: {
            type: 'string',
            title: 'Name'
        },
        icon: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Icon'
        }
    },
    type: 'object',
    required: ['name', 'icon'],
    title: 'Downloader'
} as const;

export const $Equipment = {
    properties: {
        id: {
            anyOf: [
                {
                    type: 'integer'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Id'
        },
        name: {
            type: 'string',
            title: 'Name'
        }
    },
    type: 'object',
    required: ['name'],
    title: 'Equipment'
} as const;

export const $FeatureInfo = {
    properties: {
        id: {
            type: 'string',
            title: 'Id'
        },
        itemName: {
            type: 'string',
            title: 'Itemname'
        },
        geoInfoItems: {
            items: {
                '$ref': '#/components/schemas/InfoItem'
            },
            type: 'array',
            title: 'Geoinfoitems',
            default: []
        },
        surveyInfoItems: {
            items: {
                '$ref': '#/components/schemas/InfoItem'
            },
            type: 'array',
            title: 'Surveyinfoitems',
            default: []
        },
        infoItems: {
            items: {
                '$ref': '#/components/schemas/InfoItem'
            },
            type: 'array',
            title: 'Infoitems',
            default: []
        },
        categorizedInfoItems: {
            anyOf: [
                {
                    items: {
                        '$ref': '#/components/schemas/InfoCategory'
                    },
                    type: 'array'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Categorizedinfoitems'
        },
        tags: {
            items: {
                '$ref': '#/components/schemas/Tag'
            },
            type: 'array',
            title: 'Tags',
            default: []
        },
        graph: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Graph'
        },
        plotParams: {
            anyOf: [
                {
                    '$ref': '#/components/schemas/PlotParams'
                },
                {
                    type: 'null'
                }
            ]
        },
        files: {
            items: {
                '$ref': '#/components/schemas/Attachment'
            },
            type: 'array',
            title: 'Files',
            default: []
        },
        images: {
            items: {
                '$ref': '#/components/schemas/Attachment'
            },
            type: 'array',
            title: 'Images',
            default: []
        },
        externalRecordUrl: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Externalrecordurl'
        }
    },
    type: 'object',
    required: ['id', 'itemName'],
    title: 'FeatureInfo'
} as const;

export const $FileImport = {
    properties: {
        id: {
            anyOf: [
                {
                    type: 'integer'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Id'
        },
        url: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Url'
        },
        dir: {
            type: 'string',
            title: 'Dir'
        },
        name: {
            type: 'string',
            title: 'Name'
        },
        md5: {
            type: 'string',
            title: 'Md5'
        },
        time: {
            anyOf: [
                {
                    type: 'string',
                    format: 'date-time'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Time'
        },
        comment: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Comment'
        },
        status: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Status'
        },
        store: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Store'
        },
        basket: {
            type: 'string',
            title: 'Basket'
        },
        project_id: {
            anyOf: [
                {
                    type: 'integer'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Project Id'
        },
        surveyor_id: {
            anyOf: [
                {
                    type: 'integer'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Surveyor Id'
        },
        equipment_id: {
            anyOf: [
                {
                    type: 'integer'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Equipment Id'
        },
        path: {
            type: 'string',
            format: 'path',
            title: 'Path',
            readOnly: true
        }
    },
    type: 'object',
    required: ['dir', 'name', 'md5', 'basket', 'project_id', 'surveyor_id', 'equipment_id', 'path'],
    title: 'FileImport',
    description: `Files to import or imported in the DB.
Give either url or path.`
} as const;

export const $FormField = {
    properties: {
        name: {
            type: 'string',
            title: 'Name'
        },
        type: {
            type: 'string',
            title: 'Type'
        },
        dflt: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Dflt'
        },
        value: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Value'
        }
    },
    type: 'object',
    required: ['name', 'type'],
    title: 'FormField'
} as const;

export const $FormFieldInput = {
    properties: {
        name: {
            type: 'string',
            title: 'Name'
        },
        value: {
            type: 'string',
            title: 'Value'
        }
    },
    type: 'object',
    required: ['name', 'value'],
    title: 'FormFieldInput'
} as const;

export const $Geo = {
    properties: {
        raw_survey: {
            '$ref': '#/components/schemas/RawSurvey',
            default: {
                spatial_sys_ref: {
                    author: 'AVSM',
                    ellps: 'WGS84',
                    k: 1,
                    lat_0: 12.01605433,
                    lon_0: 79.80998934,
                    no_defs: true,
                    proj: 'tmerc',
                    towgs84: '0,0,0,0,0,0,0',
                    units: 'm',
                    x_0: 370455.63,
                    y_0: 1328608.994
                },
                srid: 910001
            }
        },
        simplify_geom_factor: {
            type: 'integer',
            title: 'Simplify Geom Factor',
            default: 10000000
        },
        simplify_preserve_topology: {
            type: 'boolean',
            title: 'Simplify Preserve Topology',
            default: false
        },
        srid: {
            type: 'integer',
            title: 'Srid',
            default: 4326
        },
        srid_for_proj: {
            type: 'integer',
            title: 'Srid For Proj',
            default: 32644
        }
    },
    type: 'object',
    title: 'Geo'
} as const;

export const $HTTPValidationError = {
    properties: {
        detail: {
            items: {
                '$ref': '#/components/schemas/ValidationError'
            },
            type: 'array',
            title: 'Detail'
        }
    },
    type: 'object',
    title: 'HTTPValidationError'
} as const;

export const $InfoCategory = {
    properties: {
        name: {
            type: 'string',
            title: 'Name'
        },
        infoItems: {
            items: {
                '$ref': '#/components/schemas/InfoItem'
            },
            type: 'array',
            title: 'Infoitems'
        }
    },
    type: 'object',
    required: ['name', 'infoItems'],
    title: 'InfoCategory'
} as const;

export const $InfoItem = {
    properties: {
        key: {
            type: 'string',
            title: 'Key'
        },
        value: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'number'
                },
                {
                    type: 'integer'
                }
            ],
            title: 'Value'
        }
    },
    type: 'object',
    required: ['key', 'value'],
    title: 'InfoItem'
} as const;

export const $LegendItem = {
    properties: {
        key: {
            type: 'string',
            title: 'Key'
        },
        value: {
            type: 'string',
            title: 'Value'
        }
    },
    type: 'object',
    required: ['key', 'value'],
    title: 'LegendItem'
} as const;

export const $Map = {
    properties: {
        tileServer: {
            '$ref': '#/components/schemas/TileServer',
            default: {
                baseDir: '/home/phil/.local/share/gisaf/mbtiles_files_dir',
                useRequestUrl: false,
                spriteBaseDir: '/home/phil/.local/share/gisaf/mbtiles_sprites_dir',
                spriteUrl: '/tiles/sprite/sprite',
                spriteBaseUrl: 'https://gisaf.example.org'
            }
        },
        zoom: {
            type: 'integer',
            title: 'Zoom',
            default: 14
        },
        pitch: {
            type: 'integer',
            title: 'Pitch',
            default: 45
        },
        lat: {
            type: 'number',
            title: 'Lat',
            default: 12
        },
        lng: {
            type: 'number',
            title: 'Lng',
            default: 79.8106
        },
        bearing: {
            type: 'number',
            title: 'Bearing',
            default: 0
        },
        style: {
            type: 'string',
            title: 'Style',
            default: 'OpenFreeMap'
        },
        opacity: {
            type: 'number',
            title: 'Opacity',
            default: 1
        },
        attribution: {
            type: 'string',
            title: 'Attribution',
            default: ''
        },
        status: {
            items: {
                type: 'string'
            },
            type: 'array',
            title: 'Status',
            default: ['E', 'F', 'D']
        },
        defaultStatus: {
            items: {
                type: 'string'
            },
            type: 'array',
            title: 'Defaultstatus',
            default: ['E']
        },
        tagKeys: {
            items: {
                type: 'string'
            },
            type: 'array',
            title: 'Tagkeys',
            default: ['source']
        }
    },
    type: 'object',
    title: 'Map'
} as const;

export const $MapInitData = {
    properties: {
        baseStyles: {
            items: {
                '$ref': '#/components/schemas/BaseStyle'
            },
            type: 'array',
            title: 'Basestyles',
            default: []
        },
        baseMaps: {
            items: {
                '$ref': '#/components/schemas/BaseMapWithStores'
            },
            type: 'array',
            title: 'Basemaps',
            default: []
        },
        groups: {
            items: {
                '$ref': '#/components/schemas/CategoryGroup'
            },
            type: 'array',
            title: 'Groups',
            default: []
        },
        stores: {
            items: {
                '$ref': '#/components/schemas/Store'
            },
            type: 'array',
            title: 'Stores',
            default: []
        }
    },
    type: 'object',
    title: 'MapInitData'
} as const;

export const $MaplibreStyle = {
    properties: {
        paint: {
            anyOf: [
                {
                    additionalProperties: {
                        anyOf: [
                            {
                                type: 'object'
                            },
                            {
                                items: {},
                                type: 'array'
                            },
                            {
                                type: 'boolean'
                            },
                            {
                                type: 'number'
                            },
                            {
                                type: 'integer'
                            },
                            {
                                type: 'string'
                            }
                        ]
                    },
                    type: 'object'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Paint'
        },
        layout: {
            anyOf: [
                {
                    additionalProperties: {
                        anyOf: [
                            {
                                type: 'object'
                            },
                            {
                                items: {},
                                type: 'array'
                            },
                            {
                                type: 'boolean'
                            },
                            {
                                type: 'number'
                            },
                            {
                                type: 'integer'
                            },
                            {
                                type: 'string'
                            }
                        ]
                    },
                    type: 'object'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Layout'
        },
        attribution: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Attribution'
        }
    },
    type: 'object',
    title: 'MaplibreStyle'
} as const;

export const $Measures = {
    properties: {
        defaultStore: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Defaultstore'
        }
    },
    type: 'object',
    title: 'Measures'
} as const;

export const $MeasuresItem = {
    properties: {
        id: {
            type: 'integer',
            title: 'Id'
        },
        name: {
            type: 'string',
            title: 'Name'
        }
    },
    type: 'object',
    required: ['id', 'name'],
    title: 'MeasuresItem'
} as const;

export const $ModelAction = {
    properties: {
        name: {
            type: 'string',
            title: 'Name'
        },
        icon: {
            type: 'string',
            title: 'Icon'
        },
        roles: {
            anyOf: [
                {
                    items: {
                        type: 'string'
                    },
                    type: 'array'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Roles'
        },
        formFields: {
            items: {
                '$ref': '#/components/schemas/FormField'
            },
            type: 'array',
            title: 'Formfields'
        }
    },
    type: 'object',
    required: ['name', 'icon', 'formFields'],
    title: 'ModelAction'
} as const;

export const $ModelInfo = {
    properties: {
        store: {
            type: 'string',
            title: 'Store'
        },
        modelName: {
            type: 'string',
            title: 'Modelname'
        },
        symbol: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Symbol'
        },
        values: {
            items: {
                '$ref': '#/components/schemas/ModelValue'
            },
            type: 'array',
            title: 'Values',
            default: []
        },
        actions: {
            items: {
                '$ref': '#/components/schemas/ModelAction'
            },
            type: 'array',
            title: 'Actions',
            default: []
        },
        formName: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Formname'
        },
        formFields: {
            items: {
                '$ref': '#/components/schemas/FormField'
            },
            type: 'array',
            title: 'Formfields',
            default: []
        },
        tagPlugins: {
            items: {
                type: 'string'
            },
            type: 'array',
            title: 'Tagplugins',
            default: []
        },
        tagActions: {
            items: {
                '$ref': '#/components/schemas/TagActions'
            },
            type: 'array',
            title: 'Tagactions',
            default: []
        },
        downloaders: {
            items: {
                '$ref': '#/components/schemas/Downloader'
            },
            type: 'array',
            title: 'Downloaders',
            default: []
        },
        legend: {
            items: {
                '$ref': '#/components/schemas/LegendItem'
            },
            type: 'array',
            title: 'Legend',
            default: []
        }
    },
    type: 'object',
    required: ['store', 'modelName'],
    title: 'ModelInfo'
} as const;

export const $ModelValue = {
    properties: {
        name: {
            type: 'string',
            title: 'Name'
        },
        title: {
            type: 'string',
            title: 'Title'
        },
        unit: {
            type: 'string',
            title: 'Unit'
        },
        chartType: {
            type: 'string',
            title: 'Charttype',
            default: 'line'
        },
        chartColor: {
            type: 'string',
            title: 'Chartcolor',
            default: 'blue'
        }
    },
    type: 'object',
    required: ['name', 'title', 'unit'],
    title: 'ModelValue'
} as const;

export const $PlotBaseLine = {
    properties: {
        name: {
            type: 'string',
            title: 'Name'
        },
        value: {
            type: 'number',
            title: 'Value'
        },
        color: {
            type: 'string',
            title: 'Color'
        }
    },
    type: 'object',
    required: ['name', 'value', 'color'],
    title: 'PlotBaseLine'
} as const;

export const $PlotBgShape = {
    properties: {
        name: {
            type: 'string',
            title: 'Name'
        },
        valueTop: {
            type: 'number',
            title: 'Valuetop'
        },
        valueBottom: {
            type: 'number',
            title: 'Valuebottom'
        },
        color: {
            type: 'string',
            title: 'Color'
        }
    },
    type: 'object',
    required: ['name', 'valueTop', 'valueBottom', 'color'],
    title: 'PlotBgShape'
} as const;

export const $PlotParams = {
    properties: {
        baseLines: {
            items: {
                '$ref': '#/components/schemas/PlotBaseLine'
            },
            type: 'array',
            title: 'Baselines',
            default: []
        },
        bgShapes: {
            items: {
                '$ref': '#/components/schemas/PlotBgShape'
            },
            type: 'array',
            title: 'Bgshapes',
            default: []
        },
        barBase: {
            anyOf: [
                {
                    type: 'number'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Barbase'
        }
    },
    type: 'object',
    title: 'PlotParams'
} as const;

export const $Project = {
    properties: {
        id: {
            anyOf: [
                {
                    type: 'integer'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Id'
        },
        name: {
            type: 'string',
            title: 'Name'
        },
        contact_person: {
            type: 'string',
            title: 'Contact Person'
        },
        site: {
            type: 'string',
            title: 'Site'
        },
        date_approved: {
            type: 'string',
            format: 'date',
            title: 'Date Approved'
        },
        start_date_planned: {
            type: 'string',
            format: 'date',
            title: 'Start Date Planned'
        },
        start_date_effective: {
            type: 'string',
            format: 'date',
            title: 'Start Date Effective'
        },
        end_date_planned: {
            type: 'string',
            format: 'date',
            title: 'End Date Planned'
        },
        end_date_effective: {
            type: 'string',
            format: 'date',
            title: 'End Date Effective'
        }
    },
    type: 'object',
    required: ['name', 'contact_person', 'site', 'date_approved', 'start_date_planned', 'start_date_effective', 'end_date_planned', 'end_date_effective'],
    title: 'Project'
} as const;

export const $RawSurvey = {
    properties: {
        spatial_sys_ref: {
            '$ref': '#/components/schemas/SpatialSysRef',
            default: {
                author: 'AVSM',
                ellps: 'WGS84',
                k: 1,
                lat_0: 12.01605433,
                lon_0: 79.80998934,
                no_defs: true,
                proj: 'tmerc',
                towgs84: '0,0,0,0,0,0,0',
                units: 'm',
                x_0: 370455.63,
                y_0: 1328608.994
            }
        },
        srid: {
            type: 'integer',
            title: 'Srid',
            default: 910001
        }
    },
    type: 'object',
    title: 'RawSurvey'
} as const;

export const $RoleRead = {
    properties: {
        name: {
            type: 'string',
            title: 'Name'
        },
        id: {
            type: 'integer',
            title: 'Id'
        },
        users: {
            items: {
                '$ref': '#/components/schemas/UserReadNoRoles'
            },
            type: 'array',
            title: 'Users',
            default: []
        }
    },
    type: 'object',
    required: ['name', 'id'],
    title: 'RoleRead'
} as const;

export const $RoleReadNoUsers = {
    properties: {
        name: {
            type: 'string',
            title: 'Name'
        },
        id: {
            type: 'integer',
            title: 'Id'
        }
    },
    type: 'object',
    required: ['name', 'id'],
    title: 'RoleReadNoUsers'
} as const;

export const $SpatialSysRef = {
    properties: {
        author: {
            type: 'string',
            title: 'Author',
            default: 'AVSM'
        },
        ellps: {
            type: 'string',
            title: 'Ellps',
            default: 'WGS84'
        },
        k: {
            type: 'integer',
            title: 'K',
            default: 1
        },
        lat_0: {
            type: 'number',
            title: 'Lat 0',
            default: 12.01605433
        },
        lon_0: {
            type: 'number',
            title: 'Lon 0',
            default: 79.80998934
        },
        no_defs: {
            type: 'boolean',
            title: 'No Defs',
            default: true
        },
        proj: {
            type: 'string',
            title: 'Proj',
            default: 'tmerc'
        },
        towgs84: {
            type: 'string',
            title: 'Towgs84',
            default: '0,0,0,0,0,0,0'
        },
        units: {
            type: 'string',
            title: 'Units',
            default: 'm'
        },
        x_0: {
            type: 'number',
            title: 'X 0',
            default: 370455.63
        },
        y_0: {
            type: 'number',
            title: 'Y 0',
            default: 1328608.994
        }
    },
    type: 'object',
    title: 'SpatialSysRef'
} as const;

export const $Store = {
    properties: {
        name: {
            type: 'string',
            title: 'Name'
        },
        category: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Category'
        },
        auto_import: {
            type: 'boolean',
            title: 'Auto Import'
        },
        count: {
            anyOf: [
                {
                    type: 'integer'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Count'
        },
        custom: {
            type: 'boolean',
            title: 'Custom'
        },
        description: {
            type: 'string',
            title: 'Description'
        },
        gis_type: {
            type: 'string',
            title: 'Gis Type'
        },
        group: {
            type: 'string',
            title: 'Group'
        },
        in_menu: {
            type: 'boolean',
            title: 'In Menu'
        },
        is_db: {
            type: 'boolean',
            title: 'Is Db'
        },
        is_line_work: {
            type: 'boolean',
            title: 'Is Line Work'
        },
        is_live: {
            type: 'boolean',
            title: 'Is Live'
        },
        long_name: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Long Name'
        },
        type: {
            type: 'string',
            title: 'Type'
        },
        minor_group_1: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Minor Group 1'
        },
        minor_group_2: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Minor Group 2'
        },
        status: {
            type: 'string',
            title: 'Status'
        },
        style: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Style'
        },
        symbol: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Symbol'
        },
        title: {
            type: 'string',
            title: 'Title'
        },
        viewable_role: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Viewable Role'
        },
        z_index: {
            type: 'integer',
            title: 'Z Index',
            default: 500
        }
    },
    type: 'object',
    required: ['name', 'auto_import', 'custom', 'description', 'gis_type', 'group', 'in_menu', 'is_db', 'is_line_work', 'is_live', 'long_name', 'type', 'minor_group_1', 'minor_group_2', 'status', 'style', 'symbol', 'title'],
    title: 'Store'
} as const;

export const $StoreNameOnly = {
    properties: {
        name: {
            type: 'string',
            title: 'Name'
        }
    },
    type: 'object',
    required: ['name'],
    title: 'StoreNameOnly'
} as const;

export const $SurveyMeta = {
    properties: {
        projects: {
            items: {
                '$ref': '#/components/schemas/Project'
            },
            type: 'array',
            title: 'Projects'
        },
        surveyors: {
            items: {
                '$ref': '#/components/schemas/Surveyor'
            },
            type: 'array',
            title: 'Surveyors'
        },
        equipments: {
            items: {
                '$ref': '#/components/schemas/Equipment'
            },
            type: 'array',
            title: 'Equipments'
        },
        statuses: {
            items: {
                type: 'string'
            },
            type: 'array',
            title: 'Statuses'
        },
        stores_misc: {
            items: {
                '$ref': '#/components/schemas/StoreNameOnly'
            },
            type: 'array',
            title: 'Stores Misc'
        },
        stores_line_work: {
            items: {
                '$ref': '#/components/schemas/StoreNameOnly'
            },
            type: 'array',
            title: 'Stores Line Work'
        },
        default: {
            '$ref': '#/components/schemas/BasketDefault'
        }
    },
    type: 'object',
    required: ['projects', 'surveyors', 'equipments', 'statuses', 'stores_misc', 'stores_line_work', 'default'],
    title: 'SurveyMeta'
} as const;

export const $Surveyor = {
    properties: {
        id: {
            anyOf: [
                {
                    type: 'integer'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Id'
        },
        name: {
            type: 'string',
            title: 'Name'
        }
    },
    type: 'object',
    required: ['name'],
    title: 'Surveyor'
} as const;

export const $Tag = {
    properties: {
        key: {
            type: 'string',
            title: 'Key'
        },
        value: {
            type: 'string',
            title: 'Value'
        }
    },
    type: 'object',
    required: ['key', 'value'],
    title: 'Tag'
} as const;

export const $TagAction = {
    properties: {
        name: {
            type: 'string',
            title: 'Name'
        },
        action: {
            type: 'string',
            title: 'Action'
        },
        roles: {
            anyOf: [
                {
                    items: {
                        type: 'string'
                    },
                    type: 'array'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Roles'
        },
        link: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Link'
        },
        save: {
            type: 'boolean',
            title: 'Save',
            default: false
        }
    },
    type: 'object',
    required: ['name', 'action'],
    title: 'TagAction'
} as const;

export const $TagActions = {
    properties: {
        domain: {
            type: 'string',
            title: 'Domain'
        },
        key: {
            type: 'string',
            title: 'Key'
        },
        actions: {
            items: {
                '$ref': '#/components/schemas/TagAction'
            },
            type: 'array',
            title: 'Actions'
        }
    },
    type: 'object',
    required: ['domain', 'key', 'actions'],
    title: 'TagActions'
} as const;

export const $TaggedFeature = {
    properties: {
        id: {
            type: 'string',
            title: 'Id'
        },
        tags: {
            '$ref': '#/components/schemas/Tags'
        },
        lat: {
            type: 'number',
            title: 'Lat'
        },
        lon: {
            type: 'number',
            title: 'Lon'
        }
    },
    type: 'object',
    required: ['id', 'tags', 'lat', 'lon'],
    title: 'TaggedFeature'
} as const;

export const $TaggedLayer = {
    properties: {
        store: {
            type: 'string',
            title: 'Store'
        },
        taggedFeatures: {
            items: {
                '$ref': '#/components/schemas/TaggedFeature'
            },
            type: 'array',
            title: 'Taggedfeatures'
        }
    },
    type: 'object',
    required: ['store', 'taggedFeatures'],
    title: 'TaggedLayer'
} as const;

export const $Tags = {
    properties: {
        id: {
            anyOf: [
                {
                    type: 'integer'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Id'
        },
        geom: {
            type: 'string',
            title: 'Geom'
        },
        store: {
            type: 'string',
            title: 'Store'
        },
        ref_id: {
            type: 'integer',
            title: 'Ref Id'
        },
        tags: {
            type: 'object',
            title: 'Tags'
        }
    },
    type: 'object',
    required: ['geom', 'store', 'ref_id', 'tags'],
    title: 'Tags'
} as const;

export const $TileServer = {
    properties: {
        baseDir: {
            type: 'string',
            format: 'path',
            title: 'Basedir',
            default: '/home/phil/.local/share/gisaf/mbtiles_files_dir'
        },
        useRequestUrl: {
            type: 'boolean',
            title: 'Userequesturl',
            default: false
        },
        spriteBaseDir: {
            type: 'string',
            format: 'path',
            title: 'Spritebasedir',
            default: '/home/phil/.local/share/gisaf/mbtiles_sprites_dir'
        },
        spriteUrl: {
            type: 'string',
            title: 'Spriteurl',
            default: '/tiles/sprite/sprite'
        },
        spriteBaseUrl: {
            type: 'string',
            title: 'Spritebaseurl',
            default: 'https://gisaf.example.org'
        },
        openMapTilesKey: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Openmaptileskey'
        }
    },
    type: 'object',
    title: 'TileServer'
} as const;

export const $Token = {
    properties: {
        access_token: {
            type: 'string',
            title: 'Access Token'
        },
        token_type: {
            type: 'string',
            title: 'Token Type'
        }
    },
    type: 'object',
    required: ['access_token', 'token_type'],
    title: 'Token'
} as const;

export const $UserRead = {
    properties: {
        username: {
            type: 'string',
            title: 'Username'
        },
        email: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Email'
        },
        disabled: {
            anyOf: [
                {
                    type: 'boolean'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Disabled',
            default: false
        },
        id: {
            type: 'integer',
            title: 'Id'
        },
        roles: {
            items: {
                '$ref': '#/components/schemas/RoleReadNoUsers'
            },
            type: 'array',
            title: 'Roles',
            default: []
        }
    },
    type: 'object',
    required: ['username', 'email', 'id'],
    title: 'UserRead'
} as const;

export const $UserReadNoRoles = {
    properties: {
        username: {
            type: 'string',
            title: 'Username'
        },
        email: {
            anyOf: [
                {
                    type: 'string'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Email'
        },
        disabled: {
            anyOf: [
                {
                    type: 'boolean'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Disabled',
            default: false
        },
        id: {
            type: 'integer',
            title: 'Id'
        }
    },
    type: 'object',
    required: ['username', 'email', 'id'],
    title: 'UserReadNoRoles'
} as const;

export const $UserRoleLink = {
    properties: {
        user_id: {
            anyOf: [
                {
                    type: 'integer'
                },
                {
                    type: 'null'
                }
            ],
            title: 'User Id'
        },
        role_id: {
            anyOf: [
                {
                    type: 'integer'
                },
                {
                    type: 'null'
                }
            ],
            title: 'Role Id'
        }
    },
    type: 'object',
    title: 'UserRoleLink'
} as const;

export const $ValidationError = {
    properties: {
        loc: {
            items: {
                anyOf: [
                    {
                        type: 'string'
                    },
                    {
                        type: 'integer'
                    }
                ]
            },
            type: 'array',
            title: 'Location'
        },
        msg: {
            type: 'string',
            title: 'Message'
        },
        type: {
            type: 'string',
            title: 'Error Type'
        }
    },
    type: 'object',
    required: ['loc', 'msg', 'type'],
    title: 'ValidationError'
} as const;