export const $Action = {
	properties: {
		name: {
	type: 'string',
	isRequired: true,
},
		roles: {
	type: 'array',
	contains: {
	type: 'string',
},
	isRequired: true,
},
		params: {
	type: 'array',
	contains: {
		type: 'ActionParam',
	},
	isRequired: true,
},
	},
} as const;

export const $ActionParam = {
	properties: {
		name: {
	type: 'string',
	isRequired: true,
},
		type: {
	type: 'string',
	isRequired: true,
},
		dflt: {
	type: 'string',
	isRequired: true,
},
	},
} as const;

export const $ActionResult = {
	properties: {
		message: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
},
		taggedLayers: {
	type: 'array',
	contains: {
		type: 'TaggedLayer',
	},
	default: [],
},
	},
} as const;

export const $ActionResults = {
	properties: {
		name: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
},
		message: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
},
		actionResults: {
	type: 'array',
	contains: {
		type: 'ActionResult',
	},
	default: [],
},
	},
} as const;

export const $ActionsResults = {
	properties: {
		message: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
},
		actionResults: {
	type: 'array',
	contains: {
		type: 'ActionResults',
	},
	default: [],
},
	},
} as const;

export const $ActionsStore = {
	properties: {
		store: {
	type: 'string',
	isRequired: true,
},
		actions: {
	type: 'array',
	contains: {
		type: 'Action',
	},
	isRequired: true,
},
	},
} as const;

export const $AdminBasket = {
	properties: {
		name: {
	type: 'string',
	isRequired: true,
},
		files: {
	type: 'array',
	contains: {
		type: 'FileImport',
	},
	isRequired: true,
},
		columns: {
	type: 'array',
	contains: {
	type: 'string',
},
	isRequired: true,
},
		uploadFields: {
	type: 'array',
	contains: {
	type: 'string',
},
	isRequired: true,
},
		projects: {
	type: 'array',
	contains: {
		type: 'Project',
	},
	default: [],
},
	},
} as const;

export const $Attachment = {
	properties: {
		name: {
	type: 'string',
	isRequired: true,
},
		path: {
	type: 'string',
	isRequired: true,
},
	},
} as const;

export const $BaseMapWithStores = {
	properties: {
		name: {
	type: 'string',
	isRequired: true,
},
		stores: {
	type: 'array',
	contains: {
	type: 'string',
},
	isRequired: true,
},
	},
} as const;

export const $BaseStyle = {
	properties: {
		id: {
	type: 'any-of',
	contains: [{
	type: 'number',
}, {
	type: 'null',
}],
},
		name: {
	type: 'string',
	isRequired: true,
},
		style: {
	type: 'any-of',
	contains: [{
	type: 'dictionary',
	contains: {
	properties: {
	},
},
}, {
	type: 'null',
}],
	isRequired: true,
},
		mbtiles: {
	type: 'string',
	isRequired: true,
},
		static_tiles_url: {
	type: 'string',
	isRequired: true,
},
		enabled: {
	type: 'boolean',
	default: true,
},
	},
} as const;

export const $BasketDefault = {
	properties: {
		surveyor: {
	type: 'string',
	default: 'Default surveyor',
},
		equipment: {
	type: 'string',
	default: 'Default equipment',
},
		project: {
	type: 'string',
	default: 'Default project',
},
		status: {
	type: 'string',
	default: 'E',
},
		store: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
},
	},
} as const;

export const $BasketImportResult = {
	properties: {
		time: {
	type: 'string',
	isRequired: true,
	format: 'date-time',
},
		message: {
	type: 'string',
	isRequired: true,
},
		details: {
	type: 'string',
	isRequired: true,
},
	},
} as const;

export const $BasketNameOnly = {
	properties: {
		name: {
	type: 'string',
	isRequired: true,
},
	},
} as const;

export const $Body_execute_tag_action_api_execTagActions_post = {
	properties: {
		stores: {
	type: 'array',
	contains: {
	type: 'string',
},
	isRequired: true,
},
		ids: {
	type: 'array',
	contains: {
	type: 'array',
	contains: {
	type: 'string',
},
},
	isRequired: true,
},
		actionNames: {
	type: 'array',
	contains: {
	type: 'string',
},
	isRequired: true,
},
		params: {
	type: 'array',
	contains: {
	type: 'any-of',
	contains: [{
	type: 'ActionParam',
}, {
	type: 'null',
}],
},
	isRequired: true,
},
		formFields: {
	type: 'array',
	contains: {
		type: 'FormFieldInput',
	},
	isRequired: true,
},
	},
} as const;

export const $Body_login_for_access_token_api_token_post = {
	properties: {
		grant_type: {
	type: 'any-of',
	contains: [{
	type: 'string',
	pattern: 'password',
}, {
	type: 'null',
}],
},
		username: {
	type: 'string',
	isRequired: true,
},
		password: {
	type: 'string',
	isRequired: true,
},
		scope: {
	type: 'string',
	default: '',
},
		client_id: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
},
		client_secret: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
},
	},
} as const;

export const $Body_upload_basket_file_api_admin_basket_upload__name__post = {
	properties: {
		file: {
	type: 'binary',
	isRequired: true,
	format: 'binary',
},
	},
} as const;

export const $BootstrapData = {
	properties: {
		version: {
	type: 'string',
	default: '2023.4.dev63+g52e1d21.d20240408',
},
		title: {
	type: 'string',
	default: 'Auroville Geomatics Studio (Me)',
},
		windowTitle: {
	type: 'string',
	default: 'AV Geomatics Studio (Me)',
},
		map: {
	type: 'all-of',
	contains: [{
	type: 'Map',
}],
},
		geo: {
	type: 'all-of',
	contains: [{
	type: 'Geo',
}],
},
		measures: {
	type: 'all-of',
	contains: [{
	type: 'Measures',
}],
},
		redirect: {
	type: 'string',
	default: 'http://gis.auroville.org.in',
},
		user: {
	type: 'any-of',
	contains: [{
	type: 'UserRead',
}, {
	type: 'null',
}],
},
	},
} as const;

export const $CategoryGroup = {
	properties: {
		name: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
},
		major: {
	type: 'boolean',
	isRequired: true,
},
		long_name: {
	type: 'string',
	isRequired: true,
},
	},
} as const;

export const $CategoryRead = {
	properties: {
		name: {
	type: 'string',
	isRequired: true,
},
		description: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
	isRequired: true,
},
		group: {
	type: 'string',
	isRequired: true,
},
		minor_group_1: {
	type: 'string',
	default: '----',
},
		minor_group_2: {
	type: 'string',
	default: '----',
},
		status: {
	type: 'string',
	isRequired: true,
},
		custom: {
	type: 'any-of',
	contains: [{
	type: 'boolean',
}, {
	type: 'null',
}],
	isRequired: true,
},
		auto_import: {
	type: 'boolean',
	default: true,
},
		gis_type: {
	type: 'string',
	default: 'Point',
},
		long_name: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
	isRequired: true,
},
		style: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
	isRequired: true,
},
		symbol: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
	isRequired: true,
},
		mapbox_type_custom: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
	isRequired: true,
},
		mapbox_paint: {
	type: 'any-of',
	contains: [{
	type: 'dictionary',
	contains: {
	type: 'any-of',
	contains: [{
	type: 'dictionary',
	contains: {
	properties: {
	},
},
}, {
	type: 'array',
	contains: {
	properties: {
	},
},
}, {
	type: 'number',
}, {
	type: 'number',
}, {
	type: 'string',
}],
},
}, {
	type: 'null',
}],
	isRequired: true,
},
		mapbox_layout: {
	type: 'any-of',
	contains: [{
	type: 'dictionary',
	contains: {
	type: 'any-of',
	contains: [{
	type: 'dictionary',
	contains: {
	properties: {
	},
},
}, {
	type: 'array',
	contains: {
	properties: {
	},
},
}, {
	type: 'number',
}, {
	type: 'number',
}, {
	type: 'string',
}],
},
}, {
	type: 'null',
}],
	isRequired: true,
},
		viewable_role: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
	isRequired: true,
},
		extra: {
	type: 'any-of',
	contains: [{
	type: 'dictionary',
	contains: {
	properties: {
	},
},
}, {
	type: 'null',
}],
	isRequired: true,
},
		layer_name: {
	type: 'string',
	description: `ISO compliant layer name (see ISO 13567)
:return: str`,
	isReadOnly: true,
	isRequired: true,
},
		table_name: {
	type: 'string',
	description: `Table name
:return:`,
	isReadOnly: true,
	isRequired: true,
},
		raw_survey_table_name: {
	type: 'string',
	description: `Table name
:return:`,
	isReadOnly: true,
	isRequired: true,
},
		mapbox_type: {
	type: 'string',
	isReadOnly: true,
	isRequired: true,
},
	},
} as const;

export const $Dashboard = {
	properties: {
		name: {
	type: 'string',
	isRequired: true,
},
		group: {
	type: 'string',
	isRequired: true,
},
		description: {
	type: 'string',
	isRequired: true,
},
		time: {
	type: 'any-of',
	contains: [{
	type: 'string',
	format: 'date-time',
}, {
	type: 'null',
}],
},
		html: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
},
		attachment: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
},
		dfData: {
	type: 'array',
	contains: {
	properties: {
	},
},
	default: [],
},
		plotData: {
	type: 'any-of',
	contains: [{
	type: 'array',
	contains: {
	type: 'dictionary',
	contains: {
	properties: {
	},
},
},
}, {
	type: 'null',
}],
},
		plotLayout: {
	type: 'any-of',
	contains: [{
	type: 'dictionary',
	contains: {
	properties: {
	},
},
}, {
	type: 'null',
}],
},
		notebook: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
},
		expandedPanes: {
	type: 'any-of',
	contains: [{
	type: 'array',
	contains: {
	type: 'string',
},
}, {
	type: 'null',
}],
},
		sections: {
	type: 'any-of',
	contains: [{
	type: 'array',
	contains: {
		type: 'DashboardSection',
	},
}, {
	type: 'null',
}],
},
	},
} as const;

export const $DashboardGroup = {
	properties: {
		name: {
	type: 'string',
	isRequired: true,
},
		pages: {
	type: 'array',
	contains: {
		type: 'DashboardPageMetaData',
	},
	isRequired: true,
},
	},
} as const;

export const $DashboardHome = {
	properties: {
		title: {
	type: 'string',
	isRequired: true,
},
		content: {
	type: 'string',
	isRequired: true,
},
		footer: {
	type: 'string',
	isRequired: true,
},
	},
} as const;

export const $DashboardPageMetaData = {
	properties: {
		name: {
	type: 'string',
	isRequired: true,
},
		group: {
	type: 'string',
	isRequired: true,
},
		description: {
	type: 'string',
	isRequired: true,
},
		viewable_role: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
},
	},
} as const;

export const $DashboardSection = {
	properties: {
		name: {
	type: 'string',
	isRequired: true,
},
		plot: {
	type: 'string',
	isRequired: true,
},
	},
} as const;

export const $DataProvider = {
	properties: {
		store: {
	type: 'string',
	isRequired: true,
},
		name: {
	type: 'string',
	isRequired: true,
},
		values: {
	type: 'array',
	contains: {
	type: 'string',
},
	isRequired: true,
},
	},
} as const;

export const $Downloader = {
	properties: {
		roles: {
	type: 'array',
	contains: {
	type: 'string',
},
	default: [],
},
		name: {
	type: 'string',
	isRequired: true,
},
		icon: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
	isRequired: true,
},
	},
} as const;

export const $Equipment = {
	properties: {
		id: {
	type: 'any-of',
	contains: [{
	type: 'number',
}, {
	type: 'null',
}],
},
		name: {
	type: 'string',
	isRequired: true,
},
	},
} as const;

export const $FeatureInfo = {
	properties: {
		id: {
	type: 'string',
	isRequired: true,
},
		itemName: {
	type: 'string',
	isRequired: true,
},
		geoInfoItems: {
	type: 'array',
	contains: {
		type: 'InfoItem',
	},
	default: [],
},
		surveyInfoItems: {
	type: 'array',
	contains: {
		type: 'InfoItem',
	},
	default: [],
},
		infoItems: {
	type: 'array',
	contains: {
		type: 'InfoItem',
	},
	default: [],
},
		categorizedInfoItems: {
	type: 'any-of',
	contains: [{
	type: 'array',
	contains: {
		type: 'InfoCategory',
	},
}, {
	type: 'null',
}],
},
		tags: {
	type: 'array',
	contains: {
		type: 'Tag',
	},
	default: [],
},
		graph: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
},
		plotParams: {
	type: 'any-of',
	contains: [{
	type: 'PlotParams',
}, {
	type: 'null',
}],
},
		files: {
	type: 'array',
	contains: {
		type: 'Attachment',
	},
	default: [],
},
		images: {
	type: 'array',
	contains: {
		type: 'Attachment',
	},
	default: [],
},
		externalRecordUrl: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
},
	},
} as const;

export const $FileImport = {
	description: `Files to import or imported in the DB.
Give either url or path.`,
	properties: {
		id: {
	type: 'any-of',
	contains: [{
	type: 'number',
}, {
	type: 'null',
}],
},
		url: {
	type: 'string',
	isRequired: true,
},
		path: {
	type: 'string',
	isRequired: true,
},
		dir: {
	type: 'string',
	isRequired: true,
},
		name: {
	type: 'string',
	isRequired: true,
},
		md5: {
	type: 'string',
	isRequired: true,
},
		time: {
	type: 'string',
	isRequired: true,
	format: 'date-time',
},
		comment: {
	type: 'string',
	isRequired: true,
},
		status: {
	type: 'string',
	isRequired: true,
},
		store: {
	type: 'string',
	isRequired: true,
},
		basket: {
	type: 'string',
	isRequired: true,
},
		project_id: {
	type: 'number',
	isRequired: true,
},
		surveyor_id: {
	type: 'number',
	isRequired: true,
},
		equipment_id: {
	type: 'number',
	isRequired: true,
},
	},
} as const;

export const $FormField = {
	properties: {
		name: {
	type: 'string',
	isRequired: true,
},
		type: {
	type: 'string',
	isRequired: true,
},
		dflt: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
},
		value: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
},
	},
} as const;

export const $FormFieldInput = {
	properties: {
		name: {
	type: 'string',
	isRequired: true,
},
		value: {
	type: 'string',
	isRequired: true,
},
	},
} as const;

export const $Geo = {
	properties: {
		raw_survey: {
	type: 'all-of',
	contains: [{
	type: 'RawSurvey',
}],
},
		simplify_geom_factor: {
	type: 'number',
	default: 10000000,
},
		simplify_preserve_topology: {
	type: 'boolean',
	default: false,
},
		srid: {
	type: 'number',
	default: 4326,
},
		srid_for_proj: {
	type: 'number',
	default: 32644,
},
	},
} as const;

export const $HTTPValidationError = {
	properties: {
		detail: {
	type: 'array',
	contains: {
		type: 'ValidationError',
	},
},
	},
} as const;

export const $InfoCategory = {
	properties: {
		name: {
	type: 'string',
	isRequired: true,
},
		infoItems: {
	type: 'array',
	contains: {
		type: 'InfoItem',
	},
	isRequired: true,
},
	},
} as const;

export const $InfoItem = {
	properties: {
		key: {
	type: 'string',
	isRequired: true,
},
		value: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'number',
}, {
	type: 'number',
}],
	isRequired: true,
},
	},
} as const;

export const $LegendItem = {
	properties: {
		key: {
	type: 'string',
	isRequired: true,
},
		value: {
	type: 'string',
	isRequired: true,
},
	},
} as const;

export const $Map = {
	properties: {
		tileServer: {
	type: 'all-of',
	contains: [{
	type: 'TileServer',
}],
},
		zoom: {
	type: 'number',
	default: 14,
},
		pitch: {
	type: 'number',
	default: 45,
},
		lat: {
	type: 'number',
	default: 12,
},
		lng: {
	type: 'number',
	default: 79.8106,
},
		bearing: {
	type: 'number',
	default: 0,
},
		style: {
	type: 'string',
	default: 'OSM (vector)',
},
		opacity: {
	type: 'number',
	default: 1,
},
		attribution: {
	type: 'string',
	default: '',
},
		status: {
	type: 'array',
	contains: {
	type: 'string',
},
	default: [
    "E",
    "F",
    "D"
],
},
		defaultStatus: {
	type: 'array',
	contains: {
	type: 'string',
},
	default: [
    "E"
],
},
		tagKeys: {
	type: 'array',
	contains: {
	type: 'string',
},
	default: [
    "source"
],
},
	},
} as const;

export const $MapInitData = {
	properties: {
		baseStyles: {
	type: 'array',
	contains: {
		type: 'BaseStyle',
	},
	default: [],
},
		baseMaps: {
	type: 'array',
	contains: {
		type: 'BaseMapWithStores',
	},
	default: [],
},
		groups: {
	type: 'array',
	contains: {
		type: 'CategoryGroup',
	},
	default: [],
},
		stores: {
	type: 'array',
	contains: {
		type: 'Store',
	},
	default: [],
},
	},
} as const;

export const $MaplibreStyle = {
	properties: {
		paint: {
	type: 'any-of',
	contains: [{
	type: 'dictionary',
	contains: {
	type: 'any-of',
	contains: [{
	type: 'dictionary',
	contains: {
	properties: {
	},
},
}, {
	type: 'array',
	contains: {
	properties: {
	},
},
}, {
	type: 'number',
}, {
	type: 'number',
}, {
	type: 'string',
}],
},
}, {
	type: 'null',
}],
},
		layout: {
	type: 'any-of',
	contains: [{
	type: 'dictionary',
	contains: {
	type: 'any-of',
	contains: [{
	type: 'dictionary',
	contains: {
	properties: {
	},
},
}, {
	type: 'array',
	contains: {
	properties: {
	},
},
}, {
	type: 'number',
}, {
	type: 'number',
}, {
	type: 'string',
}],
},
}, {
	type: 'null',
}],
},
		attribution: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
},
	},
} as const;

export const $Measures = {
	properties: {
		defaultStore: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
},
	},
} as const;

export const $MeasuresItem = {
	properties: {
		id: {
	type: 'number',
	isRequired: true,
},
		name: {
	type: 'string',
	isRequired: true,
},
	},
} as const;

export const $ModelAction = {
	properties: {
		name: {
	type: 'string',
	isRequired: true,
},
		icon: {
	type: 'string',
	isRequired: true,
},
		roles: {
	type: 'any-of',
	contains: [{
	type: 'array',
	contains: {
	type: 'string',
},
}, {
	type: 'null',
}],
},
		formFields: {
	type: 'array',
	contains: {
		type: 'FormField',
	},
	isRequired: true,
},
	},
} as const;

export const $ModelInfo = {
	properties: {
		store: {
	type: 'string',
	isRequired: true,
},
		modelName: {
	type: 'string',
	isRequired: true,
},
		symbol: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
},
		values: {
	type: 'array',
	contains: {
		type: 'ModelValue',
	},
	default: [],
},
		actions: {
	type: 'array',
	contains: {
		type: 'ModelAction',
	},
	default: [],
},
		formName: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
},
		formFields: {
	type: 'array',
	contains: {
		type: 'FormField',
	},
	default: [],
},
		tagPlugins: {
	type: 'array',
	contains: {
	type: 'string',
},
	default: [],
},
		tagActions: {
	type: 'array',
	contains: {
		type: 'TagActions',
	},
	default: [],
},
		downloaders: {
	type: 'array',
	contains: {
		type: 'Downloader',
	},
	default: [],
},
		legend: {
	type: 'array',
	contains: {
		type: 'LegendItem',
	},
	default: [],
},
	},
} as const;

export const $ModelValue = {
	properties: {
		name: {
	type: 'string',
	isRequired: true,
},
		title: {
	type: 'string',
	isRequired: true,
},
		unit: {
	type: 'string',
	isRequired: true,
},
		chartType: {
	type: 'string',
	default: 'line',
},
		chartColor: {
	type: 'string',
	default: 'blue',
},
	},
} as const;

export const $PlotBaseLine = {
	properties: {
		name: {
	type: 'string',
	isRequired: true,
},
		value: {
	type: 'number',
	isRequired: true,
},
		color: {
	type: 'string',
	isRequired: true,
},
	},
} as const;

export const $PlotBgShape = {
	properties: {
		name: {
	type: 'string',
	isRequired: true,
},
		valueTop: {
	type: 'number',
	isRequired: true,
},
		valueBottom: {
	type: 'number',
	isRequired: true,
},
		color: {
	type: 'string',
	isRequired: true,
},
	},
} as const;

export const $PlotParams = {
	properties: {
		baseLines: {
	type: 'array',
	contains: {
		type: 'PlotBaseLine',
	},
	default: [],
},
		bgShapes: {
	type: 'array',
	contains: {
		type: 'PlotBgShape',
	},
	default: [],
},
		barBase: {
	type: 'any-of',
	contains: [{
	type: 'number',
}, {
	type: 'null',
}],
},
	},
} as const;

export const $Project = {
	properties: {
		id: {
	type: 'any-of',
	contains: [{
	type: 'number',
}, {
	type: 'null',
}],
},
		name: {
	type: 'string',
	isRequired: true,
},
		contact_person: {
	type: 'string',
	isRequired: true,
},
		site: {
	type: 'string',
	isRequired: true,
},
		date_approved: {
	type: 'string',
	isRequired: true,
	format: 'date',
},
		start_date_planned: {
	type: 'string',
	isRequired: true,
	format: 'date',
},
		start_date_effective: {
	type: 'string',
	isRequired: true,
	format: 'date',
},
		end_date_planned: {
	type: 'string',
	isRequired: true,
	format: 'date',
},
		end_date_effective: {
	type: 'string',
	isRequired: true,
	format: 'date',
},
	},
} as const;

export const $RawSurvey = {
	properties: {
		spatial_sys_ref: {
	type: 'all-of',
	contains: [{
	type: 'SpatialSysRef',
}],
},
		srid: {
	type: 'number',
	default: 910001,
},
	},
} as const;

export const $RoleRead = {
	properties: {
		name: {
	type: 'string',
	isRequired: true,
},
		id: {
	type: 'number',
	isRequired: true,
},
		users: {
	type: 'array',
	contains: {
		type: 'UserReadNoRoles',
	},
	default: [],
},
	},
} as const;

export const $RoleReadNoUsers = {
	properties: {
		name: {
	type: 'string',
	isRequired: true,
},
		id: {
	type: 'number',
	isRequired: true,
},
	},
} as const;

export const $SpatialSysRef = {
	properties: {
		author: {
	type: 'string',
	default: 'AVSM',
},
		ellps: {
	type: 'string',
	default: 'WGS84',
},
		k: {
	type: 'number',
	default: 1,
},
		lat_0: {
	type: 'number',
	default: 12.01605433,
},
		lon_0: {
	type: 'number',
	default: 79.80998934,
},
		no_defs: {
	type: 'boolean',
	default: true,
},
		proj: {
	type: 'string',
	default: 'tmerc',
},
		towgs84: {
	type: 'string',
	default: '0,0,0,0,0,0,0',
},
		units: {
	type: 'string',
	default: 'm',
},
		x_0: {
	type: 'number',
	default: 370455.63,
},
		y_0: {
	type: 'number',
	default: 1328608.994,
},
	},
} as const;

export const $Store = {
	properties: {
		name: {
	type: 'string',
	isRequired: true,
},
		category: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
},
		auto_import: {
	type: 'boolean',
	isRequired: true,
},
		count: {
	type: 'any-of',
	contains: [{
	type: 'number',
}, {
	type: 'null',
}],
},
		custom: {
	type: 'boolean',
	isRequired: true,
},
		description: {
	type: 'string',
	isRequired: true,
},
		gis_type: {
	type: 'string',
	isRequired: true,
},
		group: {
	type: 'string',
	isRequired: true,
},
		in_menu: {
	type: 'boolean',
	isRequired: true,
},
		is_db: {
	type: 'boolean',
	isRequired: true,
},
		is_line_work: {
	type: 'boolean',
	isRequired: true,
},
		is_live: {
	type: 'boolean',
	isRequired: true,
},
		long_name: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
	isRequired: true,
},
		type: {
	type: 'string',
	isRequired: true,
},
		minor_group_1: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
	isRequired: true,
},
		minor_group_2: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
	isRequired: true,
},
		status: {
	type: 'string',
	isRequired: true,
},
		style: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
	isRequired: true,
},
		symbol: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
	isRequired: true,
},
		title: {
	type: 'string',
	isRequired: true,
},
		viewable_role: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
	isRequired: true,
},
		z_index: {
	type: 'number',
	isRequired: true,
},
	},
} as const;

export const $StoreNameOnly = {
	properties: {
		name: {
	type: 'string',
	isRequired: true,
},
	},
} as const;

export const $SurveyMeta = {
	properties: {
		projects: {
	type: 'array',
	contains: {
		type: 'Project',
	},
	isRequired: true,
},
		surveyors: {
	type: 'array',
	contains: {
		type: 'Surveyor',
	},
	isRequired: true,
},
		equipments: {
	type: 'array',
	contains: {
		type: 'Equipment',
	},
	isRequired: true,
},
		statuses: {
	type: 'array',
	contains: {
	type: 'string',
},
	isRequired: true,
},
		stores_misc: {
	type: 'array',
	contains: {
		type: 'StoreNameOnly',
	},
	isRequired: true,
},
		stores_line_work: {
	type: 'array',
	contains: {
		type: 'StoreNameOnly',
	},
	isRequired: true,
},
		default: {
	type: 'BasketDefault',
	isRequired: true,
},
	},
} as const;

export const $Surveyor = {
	properties: {
		id: {
	type: 'any-of',
	contains: [{
	type: 'number',
}, {
	type: 'null',
}],
},
		name: {
	type: 'string',
	isRequired: true,
},
	},
} as const;

export const $Tag = {
	properties: {
		key: {
	type: 'string',
	isRequired: true,
},
		value: {
	type: 'string',
	isRequired: true,
},
	},
} as const;

export const $TagAction = {
	properties: {
		name: {
	type: 'string',
	isRequired: true,
},
		action: {
	type: 'string',
	isRequired: true,
},
		roles: {
	type: 'any-of',
	contains: [{
	type: 'array',
	contains: {
	type: 'string',
},
}, {
	type: 'null',
}],
},
		link: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
},
		save: {
	type: 'boolean',
	default: false,
},
	},
} as const;

export const $TagActions = {
	properties: {
		domain: {
	type: 'string',
	isRequired: true,
},
		key: {
	type: 'string',
	isRequired: true,
},
		actions: {
	type: 'array',
	contains: {
		type: 'TagAction',
	},
	isRequired: true,
},
	},
} as const;

export const $TaggedFeature = {
	properties: {
		id: {
	type: 'string',
	isRequired: true,
},
		tags: {
	type: 'Tags',
	isRequired: true,
},
		lat: {
	type: 'number',
	isRequired: true,
},
		lon: {
	type: 'number',
	isRequired: true,
},
	},
} as const;

export const $TaggedLayer = {
	properties: {
		store: {
	type: 'string',
	isRequired: true,
},
		taggedFeatures: {
	type: 'array',
	contains: {
		type: 'TaggedFeature',
	},
	isRequired: true,
},
	},
} as const;

export const $Tags = {
	properties: {
		id: {
	type: 'any-of',
	contains: [{
	type: 'number',
}, {
	type: 'null',
}],
},
		geom: {
	type: 'string',
	isRequired: true,
},
		store: {
	type: 'string',
	isRequired: true,
},
		ref_id: {
	type: 'number',
	isRequired: true,
},
		tags: {
	type: 'dictionary',
	contains: {
	properties: {
	},
},
	isRequired: true,
},
	},
} as const;

export const $TileServer = {
	properties: {
		baseDir: {
	type: 'string',
	default: '/path/to/mbtiles_files_dir',
},
		useRequestUrl: {
	type: 'boolean',
	default: false,
},
		spriteBaseDir: {
	type: 'string',
	default: '/path/to/mbtiles_sprites_dir',
},
		spriteUrl: {
	type: 'string',
	default: '/tiles/sprite/sprite',
},
		spriteBaseUrl: {
	type: 'string',
	default: 'https://gisaf.example.org',
},
		openMapTilesKey: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
},
	},
} as const;

export const $Token = {
	properties: {
		access_token: {
	type: 'string',
	isRequired: true,
},
		token_type: {
	type: 'string',
	isRequired: true,
},
	},
} as const;

export const $UserRead = {
	properties: {
		username: {
	type: 'string',
	isRequired: true,
},
		email: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
	isRequired: true,
},
		disabled: {
	type: 'any-of',
	contains: [{
	type: 'boolean',
}, {
	type: 'null',
}],
},
		id: {
	type: 'number',
	isRequired: true,
},
		roles: {
	type: 'array',
	contains: {
		type: 'RoleReadNoUsers',
	},
	default: [],
},
	},
} as const;

export const $UserReadNoRoles = {
	properties: {
		username: {
	type: 'string',
	isRequired: true,
},
		email: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'null',
}],
	isRequired: true,
},
		disabled: {
	type: 'any-of',
	contains: [{
	type: 'boolean',
}, {
	type: 'null',
}],
},
		id: {
	type: 'number',
	isRequired: true,
},
	},
} as const;

export const $UserRoleLink = {
	properties: {
		user_id: {
	type: 'any-of',
	contains: [{
	type: 'number',
}, {
	type: 'null',
}],
},
		role_id: {
	type: 'any-of',
	contains: [{
	type: 'number',
}, {
	type: 'null',
}],
},
	},
} as const;

export const $ValidationError = {
	properties: {
		loc: {
	type: 'array',
	contains: {
	type: 'any-of',
	contains: [{
	type: 'string',
}, {
	type: 'number',
}],
},
	isRequired: true,
},
		msg: {
	type: 'string',
	isRequired: true,
},
		type: {
	type: 'string',
	isRequired: true,
},
	},
} as const;