From 64e5e72709a46f52291a7e6b67ca93486415461d Mon Sep 17 00:00:00 2001 From: jakeross Date: Mon, 10 Aug 2026 13:33:46 -0700 Subject: [PATCH 1/2] feat(geothermal): replace the well dropdown with a search interface MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Records Grid and Temp-Depth log both start at WellPickerPage, which was a single dropdown populated by one request for the first 500 wells. The catalogue runs to thousands, so that both hid most of the data — with nothing to indicate it had — and made the wells it did show reachable only by scrolling. A well that existed but was not listed looked exactly like a well that did not exist. The picker is now a search box: - The term is debounced 300 ms and sent to the server as `q`, so narrowing happens across the whole catalogue rather than within one page. - Results show the well's name over a detail line (API, type, status, county, operator) built only from the fields that well actually has. - Arrow keys move the highlight, Enter opens, Escape clears. Enter with a single result opens it without needing to highlight first. - A status line reports "Showing N of M wells", so the size of the match set is always visible. Page size grows by 50 via "Show more" up to 500 loaded at once, and on reaching that ceiling the line says to narrow the search rather than truncating quietly. geothermalDataProvider.getList gains `meta.params` passthrough, mirroring the ocotillo provider, so the search term can reach the query string. Null, undefined and empty values are skipped rather than serialised as literals. `q` is not implemented server-side — see the contract in docs/geothermal-well-search-contract.md. Until it is, the parameter is ignored and the endpoint returns its unfiltered first page: the picker still lists and pages wells, but typing narrows nothing, and the "Showing N of M" line makes that visible instead of hiding it. The previous design failed silently; this one fails in the open. Co-Authored-By: Claude Opus 5 --- docs/geothermal-well-search-contract.md | 114 ++++++++ src/pages/geothermal/wells/WellPickerPage.tsx | 253 ++++++++++++++---- src/pages/geothermal/wells/wellSearch.ts | 76 ++++++ src/providers/geothermal-data-provider.ts | 12 + src/test/pages/geothermal-well-search.test.ts | 100 +++++++ .../geothermal-data-provider.test.ts | 35 +++ 6 files changed, 543 insertions(+), 47 deletions(-) create mode 100644 docs/geothermal-well-search-contract.md create mode 100644 src/pages/geothermal/wells/wellSearch.ts create mode 100644 src/test/pages/geothermal-well-search.test.ts diff --git a/docs/geothermal-well-search-contract.md b/docs/geothermal-well-search-contract.md new file mode 100644 index 00000000..f3f357f5 --- /dev/null +++ b/docs/geothermal-well-search-contract.md @@ -0,0 +1,114 @@ +# Geothermal Well Search — API Contract (Proposal) + +Status: **draft / proposal** — the parameter this describes is not implemented, +and at the time of writing no reachable backend serves the geothermal well +endpoint at all. + +## Background + +The geothermal Sandbox pages (Records Grid, Temp-Depth log) start with a well +picker. It used to be a single dropdown populated by one request: + +``` +GET thing/geothermal-well?page=1&size=500 +``` + +Two problems, both consequences of doing selection without search: + +1. **Silent truncation.** The catalogue runs to thousands of wells. Everything + past the 500th was absent from the dropdown with nothing to say so, and a + well that existed but was not listed was indistinguishable from a well that + did not exist. +2. **Scrolling as a workflow.** Even within those 500, the only way to reach a + well was to scroll a flat list ordered by whatever the server returned. + +The picker is now a search box. It sends the user's term to the server and +reports how much of the match set it is showing. + +## Proposed parameter + +``` +GET thing/geothermal-well?q=&page=1&size=50 +``` + +`q` is a free-text term. When absent or empty the endpoint behaves exactly as +it does today — the first page of the unfiltered list — so a picker with an +empty box still shows something. + +### Matching + +The term should match, case-insensitively, as a substring against at least: + +| Field | Why | +| --- | --- | +| `name` | The label the picker shows, and what a user knows the well by | +| `api` | State-county-well identifier; how wells are cross-referenced | +| `well_number` | Operator's own numbering | +| `operator` | "show me everything Chevron drilled" | +| `county` | Coarse geographic narrowing | + +A term with several whitespace-separated words should require every word to +match somewhere (AND), not any of them — `jemez 1` should narrow the results +that `jemez` returns, not widen them. + +### Response + +Unchanged from the existing list shape. The client relies on the paginated +envelope, and specifically on `total`: + +```jsonc +{ + "items": [ /* IWell */ ], + "total": 1284, // matches for this q, NOT the size of the whole catalogue + "page": 1, + "size": 50, + "pages": 26 +} +``` + +`total` must be the count of records matching `q`. The picker shows +"Showing 50 of 1284 wells matching your search" from it, and decides whether to +offer "Show more". If the server returns the unfiltered count instead, that +line misreports and the button appears when there is nothing more to fetch. + +The provider also accepts a bare array response, but then `total` is just the +array length and the picker cannot report the match count. The envelope is +preferred. + +## Client behaviour + +- Term is debounced 300 ms, so typing a well name is one request rather than + one per keystroke. +- Page size starts at 50 and grows by 50 via "Show more", capped at 500 loaded + at once. On reaching the cap the picker says so and asks the user to narrow + the search, rather than truncating quietly the way the old dropdown did. +- A new term resets the page size, so a narrow search does not inherit a broad + one's over-fetch. +- The term travels as `meta.params` through `geothermalDataProvider.getList`, + which passes any `meta.params` entry through as a query parameter and skips + null/undefined/empty values. + +## If `q` is not implemented + +The parameter is ignored and the endpoint returns the unfiltered first page. +The picker still works — it lists wells and the user can page through them — +but typing narrows nothing, and the "Showing N of M" line reveals the problem +immediately rather than hiding it: the total will not move as the term changes. + +That is a deliberate property. The previous design failed silently; this one +fails visibly. + +## Open questions + +1. **Ordering.** Unspecified today. Relevance ordering (exact `name` match + first, then prefix, then substring) would make the first result usually the + right one. Absent that, a stable `name` sort is better than arbitrary order. +2. **Fuzzy matching.** Substring only, for now. Whether typo tolerance is worth + it depends on how users actually refer to these wells. +3. **Where the endpoint lives.** `thing/geothermal-well` is absent from the + bundled OpenAPI spec, returns 404 on the dev API, and collides with + `thing/{thing_id}` on the local Ocotillo backend. + `VITE_NMBGMR_GEOTHERMAL_API_URL` is unset in every `.env` example and + `settings.tsx` falls back to the Ocotillo URL, so as configured the + geothermal provider currently points somewhere that cannot serve it. This + needs resolving before any of the above can be verified end to end. diff --git a/src/pages/geothermal/wells/WellPickerPage.tsx b/src/pages/geothermal/wells/WellPickerPage.tsx index 1811354f..63bd571b 100644 --- a/src/pages/geothermal/wells/WellPickerPage.tsx +++ b/src/pages/geothermal/wells/WellPickerPage.tsx @@ -1,20 +1,20 @@ +import { useEffect, useMemo, useRef, useState } from 'react' import { useList, useGo } from '@refinedev/core' import type { IWell } from '@/interfaces/geothermal' import { useAccessCapabilities } from '@/hooks' -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from '@/components/ui/select' +import { Input } from '@/components/ui/input' +import { Button } from '@/components/ui/button' import { canEnterGeothermalData } from './recordsGridLogic' - -function wellLabel(w: IWell): string { - const parts = [w.county, w.well_type].filter(Boolean) - const suffix = parts.length ? ` — ${parts.join(', ')}` : '' - return `${w.name ?? w.well_data_id}${suffix}` -} +import { + buildWellSearchParams, + isSelectableWell, + moveActiveIndex, + wellSearchDetail, + wellSearchLabel, + WELL_SEARCH_DEBOUNCE_MS, + WELL_SEARCH_MAX_LOADED, + WELL_SEARCH_PAGE_SIZE, +} from './wellSearch' interface WellPickerPageProps { title: string @@ -27,8 +27,14 @@ interface WellPickerPageProps { /** * Shared Sandbox entry point for per-well geothermal pages (records grid, - * temp-depth log): pick a well, then navigate into `targetPath/{well_data_id}`. + * temp-depth log): find a well, then navigate into `targetPath/{well_data_id}`. * Admin-gated per BDMS-878. + * + * This was a single dropdown holding the first 500 wells. The catalogue runs to + * thousands, so that both hid most of the data — with no indication it had — + * and made the wells it did show reachable only by scrolling. Searching is the + * only workflow that scales, so the term is sent to the server and the page + * reports how much of the match set it is showing. */ export function WellPickerPage({ title, @@ -39,14 +45,73 @@ export function WellPickerPage({ const go = useGo() const { canManageGeothermal, isLoading: permLoading } = useAccessCapabilities() + const allowed = canEnterGeothermalData(canManageGeothermal) - const { query } = useList({ + const [term, setTerm] = useState('') + const [debouncedTerm, setDebouncedTerm] = useState('') + const [pageSize, setPageSize] = useState(WELL_SEARCH_PAGE_SIZE) + const [activeIndex, setActiveIndex] = useState(-1) + const listRef = useRef(null) + + // Debounce the term, and reset alongside it: a new search starts from one + // page again, or a narrow term inherits the page size a broad one grew to + // and over-fetches. The highlight resets for the same reason — it indexes + // into a result set that is about to be replaced. + useEffect(() => { + const timer = setTimeout(() => { + setDebouncedTerm(term) + setPageSize(WELL_SEARCH_PAGE_SIZE) + setActiveIndex(-1) + }, WELL_SEARCH_DEBOUNCE_MS) + return () => clearTimeout(timer) + }, [term]) + + const { result, query } = useList({ resource: 'thing/geothermal-well', dataProviderName: 'geothermal', - pagination: { pageSize: 500, mode: 'server' }, - queryOptions: { enabled: canEnterGeothermalData(canManageGeothermal) }, + pagination: { currentPage: 1, pageSize, mode: 'server' }, + meta: { params: buildWellSearchParams({ term: debouncedTerm, pageSize }) }, + queryOptions: { enabled: allowed }, }) + const wells = useMemo( + () => (result?.data ?? []).filter(isSelectableWell), + [result?.data] + ) + const total = result?.total ?? wells.length + const hasMore = wells.length < total && wells.length < WELL_SEARCH_MAX_LOADED + + // Follow the highlighted row when the keyboard moves it past the fold. + useEffect(() => { + if (activeIndex < 0) return + listRef.current?.children[activeIndex]?.scrollIntoView({ block: 'nearest' }) + }, [activeIndex]) + + const open = (well: IWell) => go({ to: `${targetPath}/${well.well_data_id}` }) + + const handleKeyDown = (event: React.KeyboardEvent) => { + if (event.key === 'ArrowDown' || event.key === 'ArrowUp') { + event.preventDefault() + setActiveIndex((current) => + moveActiveIndex(current, event.key === 'ArrowDown' ? 1 : -1, wells.length) + ) + return + } + if (event.key === 'Enter') { + // With nothing highlighted, a single result is unambiguous. + const target = wells[activeIndex] ?? (wells.length === 1 ? wells[0] : null) + if (target) { + event.preventDefault() + open(target) + } + return + } + if (event.key === 'Escape' && term) { + event.preventDefault() + setTerm('') + } + } + if (permLoading) { return (
@@ -54,7 +119,7 @@ export function WellPickerPage({
) } - if (!canEnterGeothermalData(canManageGeothermal)) { + if (!allowed) { return (
{deniedMessage} @@ -62,41 +127,135 @@ export function WellPickerPage({ ) } - // Radix SelectItem forbids an empty value, so drop rows without a usable id. - const wells = (query.data?.data ?? []).filter( - (w) => w.well_data_id != null && w.well_data_id !== '' - ) - return ( -
+

{title}

{description}

- + setTerm(event.target.value)} + onKeyDown={handleKeyDown} + placeholder="Search by well name, API, operator, county…" + aria-label="Search geothermal wells" + aria-controls="geothermal-well-results" + /> + + + + {wells.length > 0 ? ( +
    + {wells.map((well, index) => { + const detail = wellSearchDetail(well) + return ( +
  • + +
  • + ) + })} +
+ ) : null} + + {hasMore ? ( + + ) : null}
) } + +/** + * One line saying what the list is currently showing. The old dropdown gave no + * indication that it held only part of the catalogue, so a well that existed + * but was not listed looked like a well that did not exist. + */ +function WellSearchStatus({ + isLoading, + isFetching, + isError, + shown, + total, + term, +}: { + isLoading: boolean + isFetching: boolean + isError: boolean + shown: number + total: number + term: string +}) { + if (isError) { + return ( +

+ Could not load geothermal wells. Check the connection and try again. +

+ ) + } + if (isLoading) { + return

Searching…

+ } + if (shown === 0) { + return ( +

+ {term + ? `No wells match "${term}".` + : 'No geothermal wells are available.'} +

+ ) + } + + const capped = shown >= WELL_SEARCH_MAX_LOADED && total > shown + + return ( +

+ Showing {shown} of {total} {total === 1 ? 'well' : 'wells'} + {term ? ' matching your search' : ''} + {capped ? ' — narrow the search to reach the rest' : ''} + {isFetching ? ' · updating…' : ''} +

+ ) +} diff --git a/src/pages/geothermal/wells/wellSearch.ts b/src/pages/geothermal/wells/wellSearch.ts new file mode 100644 index 00000000..6b884d2a --- /dev/null +++ b/src/pages/geothermal/wells/wellSearch.ts @@ -0,0 +1,76 @@ +import type { IWell } from '@/interfaces/geothermal' + +/** + * How long to wait after the last keystroke before querying. Short enough to + * feel live, long enough that typing a well name is one request rather than + * one per character. + */ +export const WELL_SEARCH_DEBOUNCE_MS = 300 + +/** Results requested per page, and how many more each "Show more" adds. */ +export const WELL_SEARCH_PAGE_SIZE = 50 + +/** + * Ceiling on how many results the picker will hold at once. + * + * The catalogue runs to thousands of wells, so scrolling to a well is not a + * workflow — searching for it is. The cap keeps a broad query from pulling the + * whole catalogue into the DOM, and the UI says when it has been hit instead + * of truncating silently, which is what the old 500-row dropdown did. + */ +export const WELL_SEARCH_MAX_LOADED = 500 + +/** Primary line: whatever identifies the well to a person. */ +export const wellSearchLabel = (well: IWell): string => + well.name?.trim() || well.api?.trim() || well.well_number?.trim() || well.well_data_id + +/** + * Secondary line. Only the parts this well actually has, so rows do not carry + * a row of empty separators. + */ +export const wellSearchDetail = (well: IWell): string => + [well.api, well.well_type, well.status, well.county, well.operator] + .map((part) => part?.trim()) + .filter(Boolean) + .join(' · ') + +/** + * Query parameters for the geothermal well search. + * + * `q` is a free-text term matched server-side across the well's identifying + * and descriptive fields — see docs/geothermal-well-search-contract.md. It is + * omitted when blank so an empty box lists the first page rather than + * searching for nothing. + */ +export const buildWellSearchParams = ({ + term, + pageSize, +}: { + term: string + pageSize: number +}): Record => { + const trimmed = term.trim() + return trimmed ? { q: trimmed, size: pageSize } : { size: pageSize } +} + +/** + * Next highlighted row for an arrow-key press, wrapping at both ends so + * holding a key cycles rather than sticking. Returns -1 when there is nothing + * to highlight. + */ +export const moveActiveIndex = ( + current: number, + delta: number, + count: number +): number => { + if (count <= 0) return -1 + if (current < 0) return delta > 0 ? 0 : count - 1 + return (current + delta + count) % count +} + +/** + * Radix and routing both need a non-empty id, and a well without one cannot be + * opened, so those rows are dropped rather than rendered as dead entries. + */ +export const isSelectableWell = (well: IWell): boolean => + well.well_data_id != null && well.well_data_id !== '' diff --git a/src/providers/geothermal-data-provider.ts b/src/providers/geothermal-data-provider.ts index 130d80f4..4b61b7f2 100644 --- a/src/providers/geothermal-data-provider.ts +++ b/src/providers/geothermal-data-provider.ts @@ -98,6 +98,18 @@ export const geothermalDataProvider: DataProvider = { }); } + // Endpoint-specific query parameters (e.g. the well search term), mirroring + // the ocotillo provider. Set last so a caller can override a derived value, + // and skipping null/undefined so an unset option does not become "null". + if (meta?.params) { + Object.entries(meta.params as Record).forEach( + ([key, value]) => { + if (value === undefined || value === null || value === "") return; + params.set(key, String(value)); + }, + ); + } + const response = await fetcher(`${resource}?${params.toString()}`); if (response.status < 200 || response.status > 299) throw response; const resp = await response.json(); diff --git a/src/test/pages/geothermal-well-search.test.ts b/src/test/pages/geothermal-well-search.test.ts new file mode 100644 index 00000000..6f0da3ce --- /dev/null +++ b/src/test/pages/geothermal-well-search.test.ts @@ -0,0 +1,100 @@ +import { describe, expect, it } from 'vitest' +import type { IWell } from '@/interfaces/geothermal' +import { + buildWellSearchParams, + isSelectableWell, + moveActiveIndex, + wellSearchDetail, + wellSearchLabel, + WELL_SEARCH_PAGE_SIZE, +} from '@/pages/geothermal/wells/wellSearch' + +const well = (overrides: Partial): IWell => + ({ well_data_id: 'WDI-1', ...overrides }) as IWell + +describe('wellSearchLabel', () => { + it('prefers the name, then the API, then the well number, then the id', () => { + expect(wellSearchLabel(well({ name: 'Jemez 1', api: '30-043-2' }))).toBe( + 'Jemez 1' + ) + expect(wellSearchLabel(well({ name: null, api: '30-043-2' }))).toBe( + '30-043-2' + ) + expect( + wellSearchLabel(well({ name: null, api: null, well_number: '7' })) + ).toBe('7') + expect(wellSearchLabel(well({ name: null, api: null }))).toBe('WDI-1') + }) + + it('treats a whitespace-only name as absent', () => { + expect(wellSearchLabel(well({ name: ' ', api: '30-043-2' }))).toBe( + '30-043-2' + ) + }) +}) + +describe('wellSearchDetail', () => { + it('joins only the parts the well actually has', () => { + expect( + wellSearchDetail( + well({ + api: '30-043-2', + well_type: 'Geothermal', + status: 'Plugged', + county: 'Sandoval', + operator: 'NMBGMR', + }) + ) + ).toBe('30-043-2 · Geothermal · Plugged · Sandoval · NMBGMR') + + // No stray separators when most fields are empty. + expect(wellSearchDetail(well({ county: 'Sandoval' }))).toBe('Sandoval') + expect(wellSearchDetail(well({}))).toBe('') + }) +}) + +describe('buildWellSearchParams', () => { + it('sends the term as q, trimmed', () => { + expect( + buildWellSearchParams({ term: ' jemez ', pageSize: WELL_SEARCH_PAGE_SIZE }) + ).toEqual({ q: 'jemez', size: WELL_SEARCH_PAGE_SIZE }) + }) + + it('omits q entirely when the box is empty', () => { + // An empty box lists the first page; it must not search for "". + expect(buildWellSearchParams({ term: '', pageSize: 50 })).toEqual({ + size: 50, + }) + expect(buildWellSearchParams({ term: ' ', pageSize: 50 })).toEqual({ + size: 50, + }) + }) +}) + +describe('moveActiveIndex', () => { + it('enters the list from either end', () => { + expect(moveActiveIndex(-1, 1, 3)).toBe(0) + expect(moveActiveIndex(-1, -1, 3)).toBe(2) + }) + + it('wraps at both ends so a held key cycles', () => { + expect(moveActiveIndex(2, 1, 3)).toBe(0) + expect(moveActiveIndex(0, -1, 3)).toBe(2) + expect(moveActiveIndex(0, 1, 3)).toBe(1) + }) + + it('has nothing to highlight in an empty list', () => { + expect(moveActiveIndex(-1, 1, 0)).toBe(-1) + expect(moveActiveIndex(0, 1, 0)).toBe(-1) + }) +}) + +describe('isSelectableWell', () => { + it('drops rows that cannot be routed to', () => { + expect(isSelectableWell(well({ well_data_id: 'WDI-1' }))).toBe(true) + expect(isSelectableWell(well({ well_data_id: '' }))).toBe(false) + expect( + isSelectableWell(well({ well_data_id: null as unknown as string })) + ).toBe(false) + }) +}) diff --git a/src/test/providers/geothermal-data-provider.test.ts b/src/test/providers/geothermal-data-provider.test.ts index 411e1e67..791c83a9 100644 --- a/src/test/providers/geothermal-data-provider.test.ts +++ b/src/test/providers/geothermal-data-provider.test.ts @@ -121,6 +121,41 @@ describe('geothermal provider getList response shapes', () => { expect(total).toBe(42) }) + it('passes meta.params through as query parameters', async () => { + const fn = stubFetch(resp(200, { items: [], total: 0 })) + + await geothermalDataProvider.getList!({ + resource: 'thing/geothermal-well', + pagination: { currentPage: 1, pageSize: 50, mode: 'server' }, + filters: [], + sorters: [], + meta: { params: { q: 'jemez' } }, + } as never) + + const [requestedUrl] = fn.mock.calls[0] as unknown as [string] + const url = new URL(requestedUrl) + expect(url.searchParams.get('q')).toBe('jemez') + expect(url.searchParams.get('size')).toBe('50') + }) + + it('skips empty meta.params rather than sending them as literals', async () => { + const fn = stubFetch(resp(200, { items: [], total: 0 })) + + await geothermalDataProvider.getList!({ + resource: 'thing/geothermal-well', + pagination: { currentPage: 1, pageSize: 10, mode: 'server' }, + filters: [], + sorters: [], + meta: { params: { q: '', county: null, basin: undefined } }, + } as never) + + const [requestedUrl] = fn.mock.calls[0] as unknown as [string] + const url = new URL(requestedUrl) + expect(url.searchParams.has('q')).toBe(false) + expect(url.searchParams.has('county')).toBe(false) + expect(url.searchParams.has('basin')).toBe(false) + }) + it('handles a bare array response', async () => { stubFetch(resp(200, [{ OBJECTID: 1 }])) From 7382ea118802018c728a21dfec3b2aae9538f9f2 Mon Sep 17 00:00:00 2001 From: jakeross Date: Mon, 10 Aug 2026 14:34:59 -0700 Subject: [PATCH 2/2] chore(api-types): regenerate from the current schema MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The committed openapi-auth.json had drifted to 61 paths against the API's current 70. Nothing referenced the missing endpoints, so this was invisible — but it meant src/generated carried no types for them, and the geothermal well interface had to be hand-written (src/interfaces/geothermal/IWell.ts, whose comment calls its fields "PROVISIONAL … confirm against the backend contract once it lands"). Regenerated against a local API running current staging. Purely additive at the schema level: 9 paths and 7 component schemas gained, none removed, and no endpoint lost a parameter. /asset/unassociated /health /asset/upload-and-record /thing/geothermal-well /asset/{asset_id}/association /thing/geothermal-well/{well_data_id} /disclaimer /feedback /group/{group_id}/things/{thing_id} The spec file is kept minified, as it was, so its diff stays one line rather than sixteen thousand. Typecheck passes unchanged — this adds types without altering any the app already used. Co-Authored-By: Claude Opus 5 --- openapi-auth.json | 2 +- src/generated/types.gen.ts | 555 ++++++++++++++++++++++++++++++++++++- src/generated/zod.gen.ts | 356 +++++++++++++++++++++++- 3 files changed, 902 insertions(+), 11 deletions(-) diff --git a/openapi-auth.json b/openapi-auth.json index 38407bf1..5061cfab 100644 --- a/openapi-auth.json +++ b/openapi-auth.json @@ -1 +1 @@ -{"openapi":"3.1.0","info":{"title":"Ocotillo API (Full)","description":"Full API schema (authorized users)","version":"0.0.1"},"paths":{"/asset/upload":{"post":{"tags":["asset"],"summary":"Upload Asset","operationId":"upload_asset_asset_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_asset_asset_upload_post"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Upload Asset Asset Upload Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/asset":{"post":{"tags":["asset"],"summary":"Add Asset","operationId":"add_asset_asset_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAsset"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["asset"],"summary":"List Assets","description":"List all assets or assets associated with a specific thing.","operationId":"list_assets_asset_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"query","required":false,"schema":{"type":"integer","title":"Thing Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_AssetResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/asset/{asset_id}":{"get":{"tags":["asset"],"summary":"Get Asset","description":"Retrieve an asset by its ID.","operationId":"get_asset_asset__asset_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"integer","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["asset"],"summary":"Update Asset","description":"Update an existing asset.","operationId":"update_asset_asset__asset_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"integer","title":"Asset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAsset"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["asset"],"summary":"Delete Asset","operationId":"delete_asset_asset__asset_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"integer","title":"Asset Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/asset/{asset_id}/remove":{"delete":{"tags":["asset"],"summary":"Remove Asset","operationId":"remove_asset_asset__asset_id__remove_delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"integer","title":"Asset Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/author/{author_id}/publications":{"get":{"tags":["author"],"summary":"Get Author Publications","description":"Retrieve all publications for a specific author.","operationId":"get_author_publications_author__author_id__publications_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"author_id","in":"path","required":true,"schema":{"type":"integer","title":"Author Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicationResponse"},"title":"Response Get Author Publications Author Author Id Publications Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact":{"post":{"tags":["contact"],"summary":"Create a new contact","operationId":"create_contact_contact_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateContact"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["contact"],"summary":"Get contacts","description":"Retrieve all contacts from the database.\n:param session:\n:return:","operationId":"get_contacts_contact_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"sort","in":"query","required":false,"schema":{"type":"string","title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"thing_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thing Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_ContactResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact/address":{"post":{"tags":["contact"],"summary":"Add an address to a contact","description":"Add a new address to an existing contact in the database.\n:param contact_id: ID of the contact to add the address to\n:param address_data: Data for the new address\n:param session: Database session\n:return: Response containing the added address","operationId":"create_address_contact_address_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAddress"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["contact"],"summary":"Get all addresses","description":"Retrieve all addresses from the database.\n:param session:\n:return:","operationId":"get_addresses_contact_address_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_AddressResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact/email":{"post":{"tags":["contact"],"summary":"Add an email to a contact","operationId":"create_email_contact_email_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmail"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["contact"],"summary":"Get all emails","description":"Retrieve all emails from the database.\n:param session:\n:return:","operationId":"get_emails_contact_email_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_EmailResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact/phone":{"post":{"tags":["contact"],"summary":"Add a phone number to a contact","operationId":"create_phone_contact_phone_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePhone"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhoneResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["contact"],"summary":"Get all phones","description":"Retrieve all phone numbers from the database.\n:param session:\n:return:","operationId":"get_phones_contact_phone_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_PhoneResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact/email/{email_id}":{"patch":{"tags":["contact"],"summary":"Update Contact Email","description":"Update an existing contact's email in the database.","operationId":"update_contact_email_contact_email__email_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"email_id","in":"path","required":true,"schema":{"type":"integer","title":"Email Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmail"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["contact"],"summary":"Get email by ID","description":"Retrieve an email by ID from the database.","operationId":"get_email_by_id_contact_email__email_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"email_id","in":"path","required":true,"schema":{"type":"integer","title":"Email Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["contact"],"summary":"Delete contact email","description":"Delete a contact email by ID from the database.","operationId":"delete_contact_email_contact_email__email_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"email_id","in":"path","required":true,"schema":{"type":"integer","title":"Email Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact/phone/{phone_id}":{"patch":{"tags":["contact"],"summary":"Update Contact Phone","description":"Update an existing contact's phone number in the database.\n:param contact_id: ID of the contact to update\n:param phone_type: Type of the phone to update\n:param phone_number: New phone number\n:param session: Database session\n:return: Updated contact response","operationId":"update_contact_phone_contact_phone__phone_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"phone_id","in":"path","required":true,"schema":{"type":"integer","title":"Phone Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePhone"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhoneResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["contact"],"summary":"Get phone by ID","description":"Retrieve a phone by ID from the database.","operationId":"get_phone_by_id_contact_phone__phone_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"phone_id","in":"path","required":true,"schema":{"type":"integer","title":"Phone Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhoneResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["contact"],"summary":"Delete contact phone","description":"Delete a contact phone by ID from the database.","operationId":"delete_contact_phone_contact_phone__phone_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"phone_id","in":"path","required":true,"schema":{"type":"integer","title":"Phone Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact/address/{address_id}":{"patch":{"tags":["contact"],"summary":"Update Contact Address","description":"Update an existing contact's address in the database.\n\n:param address_id:\n:param address_data:\n:param session:\n:return:","operationId":"update_contact_address_contact_address__address_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"address_id","in":"path","required":true,"schema":{"type":"integer","title":"Address Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAddress"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["contact"],"summary":"Get address by ID","description":"Retrieve an address by ID from the database.","operationId":"get_address_by_id_contact_address__address_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"address_id","in":"path","required":true,"schema":{"type":"integer","title":"Address Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["contact"],"summary":"Delete contact address","description":"Delete a contact address by ID from the database.","operationId":"delete_contact_address_contact_address__address_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"address_id","in":"path","required":true,"schema":{"type":"integer","title":"Address Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact/{contact_id}":{"patch":{"tags":["contact"],"summary":"Update contact","description":"Update an existing contact in the database.\n:param contact_id: ID of the contact to update\n:param contact_data: Data to update the contact with\n:param session: Database session\n:return: Updated contact response","operationId":"update_contact_contact__contact_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"integer","title":"Contact Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateContact"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["contact"],"summary":"Get contact by ID","description":"Retrieve a contact by ID from the database.","operationId":"get_contact_by_id_contact__contact_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"integer","title":"Contact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["contact"],"summary":"Delete contact","description":"Delete a contact by ID from the database.","operationId":"delete_contact_contact__contact_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"integer","title":"Contact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact/{contact_id}/email":{"get":{"tags":["contact"],"summary":"Get contact emails","description":"Retrieve all emails associated with a contact.","operationId":"get_contact_emails_contact__contact_id__email_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"integer","title":"Contact Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_EmailResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact/{contact_id}/phone":{"get":{"tags":["contact"],"summary":"Get contact phones","description":"Retrieve all phone numbers associated with a contact.","operationId":"get_contact_phones_contact__contact_id__phone_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"integer","title":"Contact Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_PhoneResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact/{contact_id}/address":{"get":{"tags":["contact"],"summary":"Get contact addresses","description":"Retrieve all addresses associated with a contact.","operationId":"get_contact_addresses_contact__contact_id__address_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"integer","title":"Contact Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_AddressResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/geospatial":{"get":{"tags":["geospatial"],"summary":"Get Geospatial","description":"Endpoint to retrieve a GeoJSON FeatureCollection or a shapefile.\nIf the request is for a shapefile, it will return a zip file containing the shapefile.\nOtherwise, it returns a GeoJSON FeatureCollection.","operationId":"get_geospatial_geospatial_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_type","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"title":"thing_type"}},{"name":"group","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"group"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","pattern":"^(geojson|shapefile)$","title":"format","description":"Format of the response. 'geojson' for GeoJSON FeatureCollection, 'shapefile' for a shapefile.","default":"geojson"},"description":"Format of the response. 'geojson' for GeoJSON FeatureCollection, 'shapefile' for a shapefile."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/geospatial/project-area/{group_id}":{"get":{"tags":["geospatial"],"summary":"Get project area for group","operationId":"get_project_area_geospatial_project_area__group_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"integer","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureCollectionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/group":{"post":{"tags":["group"],"summary":"Create a new group","description":"Create a new group in the database.","operationId":"create_group_group_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGroup"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["group"],"summary":"Get groups","description":"Retrieve all groups from the database.","operationId":"get_groups_group_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_GroupResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/group/{group_id}":{"get":{"tags":["group"],"summary":"Get group by ID","description":"Retrieve a group by ID from the database.","operationId":"get_group_by_id_group__group_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"integer","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["group"],"summary":"Update a group by ID","description":"Update a group by ID in the database.","operationId":"update_group_group__group_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"integer","title":"Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGroup"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["group"],"summary":"Delete a group by ID","operationId":"delete_group_group__group_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"integer","title":"Group Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/lexicon/category":{"post":{"tags":["lexicon"],"summary":"Add Category","description":"Endpoint to add a category to the lexicon.","operationId":"add_category_lexicon_category_post","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLexiconCategory"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LexiconCategoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["lexicon"],"summary":"Get Lexicon Categories","description":"Endpoint to retrieve lexicon categories.","operationId":"get_lexicon_categories_lexicon_category_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":"name","title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_LexiconCategoryResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/lexicon/term":{"post":{"tags":["lexicon"],"summary":"Add term","description":"Endpoint to add a term to the lexicon.","operationId":"add_term_lexicon_term_post","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLexiconTerm"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LexiconTermResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["lexicon"],"summary":"Get lexicon terms","description":"Endpoint to retrieve lexicon terms.","operationId":"get_lexicon_terms_lexicon_term_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"term","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Term"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_LexiconTermResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/lexicon/triple":{"post":{"tags":["lexicon"],"summary":"Add triple","operationId":"add_triple_lexicon_triple_post","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLexiconTriple"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LexiconTripleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["lexicon"],"summary":"Get lexicon triples","description":"Endpoint to retrieve lexicon triples.","operationId":"get_lexicon_triples_lexicon_triple_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":"subject","title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_LexiconTripleResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/lexicon/term/{term_id}":{"patch":{"tags":["lexicon"],"summary":"Update Lexicon Term","operationId":"update_lexicon_term_lexicon_term__term_id__patch","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"term_id","in":"path","required":true,"schema":{"type":"integer","title":"Term Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateLexiconTerm"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LexiconTermResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["lexicon"],"summary":"Get Lexicon Term","operationId":"get_lexicon_term_lexicon_term__term_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"term_id","in":"path","required":true,"schema":{"type":"integer","title":"Term Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LexiconTermResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["lexicon"],"summary":"Delete a lexicon term by ID","operationId":"delete_lexicon_term_lexicon_term__term_id__delete","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"term_id","in":"path","required":true,"schema":{"type":"integer","title":"Term Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/lexicon/category/{category_id}":{"patch":{"tags":["lexicon"],"summary":"Update Lexicon Category","operationId":"update_lexicon_category_lexicon_category__category_id__patch","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"category_id","in":"path","required":true,"schema":{"type":"integer","title":"Category Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateLexiconCategory"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LexiconCategoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["lexicon"],"summary":"Get Lexicon Category","operationId":"get_lexicon_category_lexicon_category__category_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"category_id","in":"path","required":true,"schema":{"type":"integer","title":"Category Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LexiconCategoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["lexicon"],"summary":"Delete a lexicon category by ID","operationId":"delete_lexicon_category_lexicon_category__category_id__delete","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"category_id","in":"path","required":true,"schema":{"type":"integer","title":"Category Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/lexicon/triple/{triple_id}":{"patch":{"tags":["lexicon"],"summary":"Update Lexicon Triple","operationId":"update_lexicon_triple_lexicon_triple__triple_id__patch","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"triple_id","in":"path","required":true,"schema":{"type":"integer","title":"Triple Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateLexiconTriple"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LexiconTripleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["lexicon"],"summary":"Get Lexicon Triple","operationId":"get_lexicon_triple_lexicon_triple__triple_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"triple_id","in":"path","required":true,"schema":{"type":"integer","title":"Triple Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LexiconTripleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["lexicon"],"summary":"Delete a lexicon triple by ID","operationId":"delete_lexicon_triple_lexicon_triple__triple_id__delete","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"triple_id","in":"path","required":true,"schema":{"type":"integer","title":"Triple Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/location":{"post":{"tags":["location"],"summary":"Create a new sample location","description":"Create a new sample location in the database.","operationId":"create_location_location_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLocation"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["location"],"summary":"Get all locations","description":"Retrieve all wells from the database.","operationId":"get_location_location_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"nearby_point","in":"query","required":false,"schema":{"type":"string","title":"Nearby Point"}},{"name":"nearby_distance_km","in":"query","required":false,"schema":{"type":"number","default":1,"title":"Nearby Distance Km"}},{"name":"within","in":"query","required":false,"schema":{"type":"string","title":"Within"}},{"name":"query","in":"query","required":false,"schema":{"type":"string","title":"Query"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_LocationResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/location/{location_id}":{"patch":{"tags":["location"],"summary":"Update a location","description":"Update a sample location in the database.","operationId":"update_location_location__location_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"location_id","in":"path","required":true,"schema":{"type":"integer","title":"Location Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateLocation"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["location"],"summary":"Get location by ID","description":"Retrieve a sample location by ID from the database.","operationId":"get_location_by_id_location__location_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"location_id","in":"path","required":true,"schema":{"type":"integer","title":"Location Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["location"],"summary":"Delete location by ID","description":"Delete a sample location by ID from the database.","operationId":"delete_location_location__location_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"location_id","in":"path","required":true,"schema":{"type":"integer","title":"Location Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/observation/groundwater-level":{"post":{"tags":["observation"],"summary":"Add Groundwater Level Observation","description":"Add a new groundwater observation to the database.","operationId":"add_groundwater_level_observation_observation_groundwater_level_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGroundwaterLevelObservation"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroundwaterLevelObservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["observation"],"summary":"Get groundwater level observations","description":"Retrieve all groundwater level observations from the database.","operationId":"get_groundwater_level_observations_observation_groundwater_level_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thing Id"}},{"name":"sensor_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sensor Id"}},{"name":"sample_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sample Id"}},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Time"}},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Time"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_GroundwaterLevelObservationResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/observation/water-chemistry":{"post":{"tags":["observation"],"summary":"Add Water Chemistry Observation","description":"Add a new water chemistry observation to the database.\nThis endpoint is currently a placeholder and does not implement any functionality.","operationId":"add_water_chemistry_observation_observation_water_chemistry_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWaterChemistryObservation"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaterChemistryObservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["observation"],"summary":"Get water chemistry observations","description":"Retrieve all water chemistry observations from the database.","operationId":"get_water_chemistry_observations_observation_water_chemistry_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thing Id"}},{"name":"sensor_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sensor Id"}},{"name":"sample_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sample Id"}},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Time"}},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Time"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_WaterChemistryObservationResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/observation/groundwater-level/bulk-upload":{"post":{"tags":["observation"],"summary":"Bulk Upload Groundwater Levels","operationId":"bulk_upload_groundwater_levels_observation_groundwater_level_bulk_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_bulk_upload_groundwater_levels_observation_groundwater_level_bulk_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaterLevelBulkUploadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/observation/groundwater-level/{observation_id}":{"patch":{"tags":["observation"],"summary":"Update Groundwater Level Observation","description":"Update an existing groundwater level observation in the database.","operationId":"update_groundwater_level_observation_observation_groundwater_level__observation_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"observation_id","in":"path","required":true,"schema":{"type":"integer","title":"Observation Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGroundwaterLevelObservation"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroundwaterLevelObservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["observation"],"summary":"Get groundwater level observation by ID","operationId":"get_groundwater_level_observation_by_id_observation_groundwater_level__observation_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"observation_id","in":"path","required":true,"schema":{"type":"integer","title":"Observation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroundwaterLevelObservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/observation/water-chemistry/{observation_id}":{"patch":{"tags":["observation"],"summary":"Update Water Chemistry Observation","description":"Update an existing water chemistry observation in the database.","operationId":"update_water_chemistry_observation_observation_water_chemistry__observation_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"observation_id","in":"path","required":true,"schema":{"type":"integer","title":"Observation Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWaterChemistryObservation"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaterChemistryObservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["observation"],"summary":"Get water chemistry observation by ID","operationId":"get_water_chemistry_observation_by_id_observation_water_chemistry__observation_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"observation_id","in":"path","required":true,"schema":{"type":"integer","title":"Observation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaterChemistryObservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/observation/transducer-groundwater-level":{"get":{"tags":["observation"],"summary":"Get transducer groundwater level observations","operationId":"get_transducer_groundwater_level_observations_observation_transducer_groundwater_level_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thing Id"}},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Time"}},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Time"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_TransducerObservationWithBlockResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/observation":{"get":{"tags":["observation"],"summary":"Get all observations","operationId":"get_all_observations_observation_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thing Id"}},{"name":"sensor_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sensor Id"}},{"name":"sample_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sample Id"}},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Time"}},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Time"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_ObservationResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/observation/{observation_id}":{"get":{"tags":["observation"],"summary":"Get an observation by its ID","operationId":"get_observation_by_id_observation__observation_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"observation_id","in":"path","required":true,"schema":{"type":"integer","title":"Observation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["observation"],"summary":"Delete an observation","operationId":"delete_observation_observation__observation_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"observation_id","in":"path","required":true,"schema":{"type":"integer","title":"Observation Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/publication/add":{"post":{"tags":["publication"],"summary":"Post Publication","description":"Add a new publication.","operationId":"post_publication_publication_add_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePublication"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/sample":{"post":{"tags":["sample"],"summary":"Add Sample","description":"Endpoint to add a sample.","operationId":"add_sample_sample_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSample"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SampleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["sample"],"summary":"Get Samples","description":"Endpoint to retrieve samples.","operationId":"get_samples_sample_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thing Id"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_SampleResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sample/{sample_id}":{"patch":{"tags":["sample"],"summary":"Update Sample","description":"Endpoint to update a sample.","operationId":"update_sample_sample__sample_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"sample_id","in":"path","required":true,"schema":{"type":"integer","title":"Sample Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSample"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SampleResponse"},{"$ref":"#/components/schemas/ResourceNotFoundResponse"}],"title":"Response Update Sample Sample Sample Id Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["sample"],"summary":"Get Sample by ID","description":"Endpoint to retrieve a sample by its ID.","operationId":"get_sample_by_id_sample__sample_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"sample_id","in":"path","required":true,"schema":{"type":"integer","title":"Sample Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SampleResponse"},{"$ref":"#/components/schemas/ResourceNotFoundResponse"}],"title":"Response Get Sample By Id Sample Sample Id Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["sample"],"summary":"Delete Sample by ID","operationId":"delete_sample_by_id_sample__sample_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"sample_id","in":"path","required":true,"schema":{"type":"integer","title":"Sample Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sensor":{"post":{"tags":["sensor"],"summary":"Add Sensor","description":"Add a sensor to the system.","operationId":"add_sensor_sensor_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSensor"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SensorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["sensor"],"summary":"Get Sensors","description":"Retrieve all sensors from the system.\nThis endpoint is a placeholder and should be implemented with actual logic.","operationId":"get_sensors_sensor_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"query","required":false,"schema":{"type":"integer","title":"Thing Id"}},{"name":"parameter_id","in":"query","required":false,"schema":{"type":"integer","title":"Parameter Id"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_SensorResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sensor/{sensor_id}":{"patch":{"tags":["sensor"],"summary":"Update Sensor","description":"Update a sensor in the system.","operationId":"update_sensor_sensor__sensor_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"sensor_id","in":"path","required":true,"schema":{"type":"integer","title":"Sensor Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSensor"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SensorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["sensor"],"summary":"Delete Sensor","description":"Delete a sensor in the system","operationId":"delete_sensor_sensor__sensor_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"sensor_id","in":"path","required":true,"schema":{"type":"integer","title":"Sensor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["sensor"],"summary":"Get Sensor","description":"Retrieve a sensor by its ID.","operationId":"get_sensor_sensor__sensor_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"sensor_id","in":"path","required":true,"schema":{"type":"integer","title":"Sensor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SensorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/search":{"get":{"tags":["search"],"summary":"Search Api","description":"Search endpoint for the collaborative network.","operationId":"search_api_search_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","title":"Q"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":25,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_dict_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/water-well":{"get":{"tags":["thing"],"summary":"Get all water wells","description":"Retrieve all wells from the database.","operationId":"get_water_wells_thing_water_well_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"query","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query"}},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},{"name":"include_contacts","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Contacts"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_WellResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["thing"],"summary":"Create a water well","description":"Create a new water well in the database.","operationId":"create_well_thing_water_well_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWell"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WellResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/water-well/{thing_id}":{"get":{"tags":["thing"],"summary":"Get water well by ID","description":"Retrieve a water well by ID from the database.","operationId":"get_well_by_id_thing_water_well__thing_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WellResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["thing"],"summary":"Update well by parent thing ID","description":"Update an existing well by ID.","operationId":"update_water_well_thing_water_well__thing_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWell"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WellResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/water-well/{thing_id}/details":{"get":{"tags":["thing"],"summary":"Get water well details payload","description":"Retrieve the consolidated payload needed to render the well details page.\nHydrograph series and map layer loading are intentionally handled separately.","operationId":"get_well_details_thing_water_well__thing_id__details_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}},{"name":"field_event_limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Field Event Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WellDetailsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/water-well/{thing_id}/export":{"get":{"tags":["thing"],"summary":"Get water well export payload","description":"Retrieve the minimal payload needed for field sheet export generation.","operationId":"get_well_export_thing_water_well__thing_id__export_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WellExportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/water-well/{thing_id}/well-screen":{"get":{"tags":["thing"],"summary":"Get well screens by water well ID","description":"Retrieve all well screens for a specific water well by its ID.","operationId":"get_well_screens_by_well_id_thing_water_well__thing_id__well_screen_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_WellScreenResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/well-screen":{"get":{"tags":["thing"],"summary":"Get well screens","description":"Retrieve all well screens from the database.","operationId":"get_well_screens_thing_well_screen_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"query","required":false,"schema":{"type":"integer","title":"Thing Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_WellScreenResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["thing"],"summary":"Create a new well screen","description":"Create a new well screen in the database.","operationId":"create_wellscreen_thing_well_screen_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWellScreen"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WellScreenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/well-screen/{wellscreen_id}":{"get":{"tags":["thing"],"summary":"Get well screen by ID","description":"Retrieve a well screen by ID from the database.","operationId":"get_well_screen_by_id_thing_well_screen__wellscreen_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"wellscreen_id","in":"path","required":true,"schema":{"type":"integer","title":"Wellscreen Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WellScreenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/spring":{"get":{"tags":["thing"],"summary":"Get all springs","description":"Retrieve all springs from the database.","operationId":"get_springs_thing_spring_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"sort","in":"query","required":false,"schema":{"type":"string","title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"query","in":"query","required":false,"schema":{"type":"string","title":"Query"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_SpringResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["thing"],"summary":"Create a new spring","description":"Create a new well in the database.","operationId":"create_spring_thing_spring_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSpring"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpringResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/spring/{thing_id}":{"get":{"tags":["thing"],"summary":"Get spring by ID","description":"Retrieve a spring by ID from the database.","operationId":"get_spring_by_id_thing_spring__thing_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpringResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["thing"],"summary":"Update spring by parent thing ID","description":"Update an existing spring by ID.","operationId":"update_spring_thing_spring__thing_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSpring"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpringResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/id-link":{"get":{"tags":["thing"],"summary":"Get all thing links","description":"Retrieve all thing links, optionally filtered and sorted.","operationId":"get_thing_id_links_thing_id_link_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","title":"Order"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_ThingIdLinkResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["thing"],"summary":"Create a new thing link","description":"Create a new link between a thing and an alternate ID.","operationId":"create_thing_id_link_thing_id_link_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateThingIdLink"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThingIdLinkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/id-link/{link_id}":{"get":{"tags":["thing"],"summary":"Get thing links by link ID","description":"Retrieve all links for a specific thing by its ID.","operationId":"get_thing_id_links_thing_id_link__link_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"link_id","in":"path","required":true,"schema":{"type":"integer","title":"Link Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThingIdLinkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["thing"],"summary":"Update thing link by ID","operationId":"update_thing_id_link_thing_id_link__link_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"link_id","in":"path","required":true,"schema":{"type":"integer","title":"Link Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateThingIdLink"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThingIdLinkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["thing"],"summary":"Delete thing link by ID","description":"Delete a thing link by ID.","operationId":"delete_thing_id_link_thing_id_link__link_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"link_id","in":"path","required":true,"schema":{"type":"integer","title":"Link Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing":{"get":{"tags":["thing"],"summary":"Get all things","description":"Retrieve all things or filter by type.","operationId":"get_things_thing_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"within","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Within"}},{"name":"query","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order"}},{"name":"include_contacts","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Contacts"}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_ThingResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/{thing_id}":{"get":{"tags":["thing"],"summary":"Get thing by ID","description":"Retrieve a thing by ID from the database.","operationId":"get_thing_by_id_thing__thing_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThingResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["thing"],"summary":"Delete thing by ID","description":"Delete a thing by ID.","operationId":"delete_thing_thing__thing_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/{thing_id}/id-link":{"get":{"tags":["thing"],"summary":"Get thing links by thing ID","description":"Retrieve all links for a specific thing by its ID.","operationId":"get_thing_id_links_thing__thing_id__id_link_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_ThingIdLinkResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/{thing_id}/deployment":{"get":{"tags":["thing"],"summary":"Get deployments by thing ID","description":"Retrieve all deployments for a specific thing by its ID.","operationId":"get_thing_deployments_thing__thing_id__deployment_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_DeploymentResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/well-screen/{well_screen_id}":{"patch":{"tags":["thing"],"summary":"Update Well Screen by ID","operationId":"update_well_screen_thing_well_screen__well_screen_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"well_screen_id","in":"path","required":true,"schema":{"type":"integer","title":"Well Screen Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWellScreen"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WellScreenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["thing"],"summary":"Delete well screen by ID","description":"Delete a well screen by ID.","operationId":"delete_well_screen_thing_well_screen__well_screen_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"well_screen_id","in":"path","required":true,"schema":{"type":"integer","title":"Well Screen Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ngwmn/waterlevels/{pointid}":{"get":{"tags":["NGWMN"],"summary":"Get waterlevels for a given pointid in the NGWMN format","operationId":"read_ngwmn_waterlevels_ngwmn_waterlevels__pointid__get","parameters":[{"name":"pointid","in":"path","required":true,"schema":{"type":"string","title":"Pointid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ngwmn/wellconstruction/{pointid}":{"get":{"tags":["NGWMN"],"summary":"Get wellconstruction for a given pointid in the NGWMN format","operationId":"read_ngwmn_wellconstruction_ngwmn_wellconstruction__pointid__get","parameters":[{"name":"pointid","in":"path","required":true,"schema":{"type":"string","title":"Pointid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ngwmn/lithology/{pointid}":{"get":{"tags":["NGWMN"],"summary":"Get lithology for a given pointid in the NGWMN format","operationId":"read_ngwmn_lithology_ngwmn_lithology__pointid__get","parameters":[{"name":"pointid","in":"path","required":true,"schema":{"type":"string","title":"Pointid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AddressResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"contact_id":{"type":"integer","title":"Contact Id"},"address_line_1":{"type":"string","title":"Address Line 1"},"address_line_2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Line 2"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"postal_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postal Code"},"country":{"type":"string","title":"Country"},"address_type":{"$ref":"#/components/schemas/address_type"}},"type":"object","required":["id","created_at","release_status","contact_id","address_line_1","country","address_type"],"title":"AddressResponse","description":"Response schema for address details."},"AssetResponse":{"properties":{"name":{"type":"string","title":"Name"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"storage_path":{"type":"string","title":"Storage Path"},"mime_type":{"type":"string","title":"Mime Type"},"size":{"type":"integer","title":"Size"},"uri":{"type":"string","title":"Uri"},"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"storage_service":{"type":"string","title":"Storage Service"},"signed_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signed Url"}},"type":"object","required":["name","storage_path","mime_type","size","uri","id","created_at","release_status","storage_service"],"title":"AssetResponse"},"AuthorResponse":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"affiliation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Affiliation"}},"type":"object","required":["id","name"],"title":"AuthorResponse","description":"Schema for the response of an author."},"Body_bulk_upload_groundwater_levels_observation_groundwater_level_bulk_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_bulk_upload_groundwater_levels_observation_groundwater_level_bulk_upload_post"},"Body_upload_asset_asset_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_asset_asset_upload_post"},"ContactResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"organization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization"},"role":{"$ref":"#/components/schemas/role"},"contact_type":{"$ref":"#/components/schemas/contact_type"},"incomplete_nma_phones":{"items":{"type":"string"},"type":"array","title":"Incomplete Nma Phones","default":[]},"emails":{"items":{"$ref":"#/components/schemas/EmailResponse"},"type":"array","title":"Emails","default":[]},"phones":{"items":{"$ref":"#/components/schemas/PhoneResponse"},"type":"array","title":"Phones","default":[]},"addresses":{"items":{"$ref":"#/components/schemas/AddressResponse"},"type":"array","title":"Addresses","default":[]},"things":{"items":{"$ref":"#/components/schemas/ThingResponseForContact"},"type":"array","title":"Things","default":[]},"communication_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Communication Notes","default":[]},"general_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"General Notes","default":[]}},"type":"object","required":["id","created_at","release_status","name","organization","role","contact_type"],"title":"ContactResponse","description":"Response schema for contact details."},"CreateAddress":{"properties":{"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"contact_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Contact Id"},"address_line_1":{"type":"string","title":"Address Line 1"},"address_line_2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Line 2"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State","default":"NM"},"postal_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postal Code"},"country":{"type":"string","title":"Country","default":"United States"},"address_type":{"$ref":"#/components/schemas/address_type","default":"Primary"}},"type":"object","required":["address_line_1"],"title":"CreateAddress","description":"Schema for creating an address."},"CreateAsset":{"properties":{"name":{"type":"string","title":"Name"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"storage_path":{"type":"string","title":"Storage Path"},"mime_type":{"type":"string","title":"Mime Type"},"size":{"type":"integer","title":"Size"},"uri":{"type":"string","title":"Uri"},"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"thing_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thing Id"}},"type":"object","required":["name","storage_path","mime_type","size","uri"],"title":"CreateAsset"},"CreateContact":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"organization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization"},"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"thing_id":{"type":"integer","title":"Thing Id"},"role":{"$ref":"#/components/schemas/role"},"contact_type":{"$ref":"#/components/schemas/contact_type"},"nma_pk_owners":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Pk Owners"},"emails":{"anyOf":[{"items":{"$ref":"#/components/schemas/CreateEmail"},"type":"array"},{"type":"null"}],"title":"Emails"},"phones":{"anyOf":[{"items":{"$ref":"#/components/schemas/CreatePhone"},"type":"array"},{"type":"null"}],"title":"Phones"},"addresses":{"anyOf":[{"items":{"$ref":"#/components/schemas/CreateAddress"},"type":"array"},{"type":"null"}],"title":"Addresses"},"notes":{"anyOf":[{"items":{"$ref":"#/components/schemas/CreateNote"},"type":"array"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["thing_id","role","contact_type"],"title":"CreateContact","description":"Schema for creating a contact."},"CreateEmail":{"properties":{"email":{"type":"string","title":"Email"},"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"contact_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Contact Id"},"email_type":{"$ref":"#/components/schemas/email_type","default":"Primary"}},"type":"object","required":["email"],"title":"CreateEmail","description":"Schema for creating an email."},"CreateGroundwaterLevelObservation":{"properties":{"parameter_id":{"type":"integer","title":"Parameter Id"},"observation_datetime":{"type":"string","format":"date-time","title":"Observation Datetime"},"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"sample_id":{"type":"integer","title":"Sample Id"},"sensor_id":{"type":"integer","title":"Sensor Id"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"},"unit":{"anyOf":[{"$ref":"#/components/schemas/unit"},{"type":"null"}]},"measuring_point_height":{"type":"number","title":"Measuring Point Height"},"groundwater_level_reason":{"type":"string","title":"Groundwater Level Reason"}},"type":"object","required":["parameter_id","observation_datetime","sample_id","sensor_id","value","unit","measuring_point_height","groundwater_level_reason"],"title":"CreateGroundwaterLevelObservation"},"CreateGroup":{"properties":{"project_area":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Area"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"parent_group_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent Group Id"},"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"name":{"type":"string","title":"Name"}},"type":"object","required":["name"],"title":"CreateGroup","description":"Schema for creating a group."},"CreateLexiconCategory":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["name"],"title":"CreateLexiconCategory","description":"Pydantic model for creating a lexicon category.\nThis model can be extended to include additional fields as needed."},"CreateLexiconTerm":{"properties":{"term":{"type":"string","title":"Term"},"definition":{"type":"string","title":"Definition"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories"}},"type":"object","required":["term","definition","categories"],"title":"CreateLexiconTerm","description":"Pydantic model for creating a lexicon term.\nThis model can be extended to include additional fields as needed."},"CreateLexiconTriple":{"properties":{"subject":{"$ref":"#/components/schemas/CreateLexiconTerm"},"predicate":{"type":"string","title":"Predicate"},"object_":{"$ref":"#/components/schemas/CreateLexiconTerm"}},"type":"object","required":["subject","predicate","object_"],"title":"CreateLexiconTriple","description":"Pydantic model for creating a triple.\nThis model can be extended to include additional fields as needed."},"CreateLocation":{"properties":{"point":{"type":"string","title":"Point"},"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"notes":{"items":{"$ref":"#/components/schemas/CreateNote"},"type":"array","title":"Notes","default":[]},"elevation":{"type":"number","title":"Elevation"}},"type":"object","required":["point","elevation"],"title":"CreateLocation","description":"Schema for creating a sample location."},"CreateMonitoringFrequency":{"properties":{"monitoring_frequency":{"$ref":"#/components/schemas/monitoring_frequency"},"start_date":{"type":"string","format":"date","title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},"type":"object","required":["monitoring_frequency","start_date"],"title":"CreateMonitoringFrequency"},"CreateNote":{"properties":{"note_type":{"$ref":"#/components/schemas/note_type"},"content":{"type":"string","title":"Content"},"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"}},"type":"object","required":["note_type","content"],"title":"CreateNote","description":"Schema for creating a new Note. The parent object's ID and type will be\ntaken from the URL path, not the request body."},"CreatePhone":{"properties":{"phone_number":{"type":"string","title":"Phone Number"},"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"contact_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Contact Id"},"phone_type":{"$ref":"#/components/schemas/phone_type","default":"Primary"}},"type":"object","required":["phone_number"],"title":"CreatePhone","description":"Schema for creating a phone number."},"CreatePublication":{"properties":{"title":{"type":"string","title":"Title"},"authors":{"items":{"type":"string"},"type":"array","title":"Authors"},"year":{"type":"integer","title":"Year"},"doi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doi"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"publication_type":{"$ref":"#/components/schemas/publication_type"}},"type":"object","required":["title","authors","year","publication_type"],"title":"CreatePublication","description":"Schema for creating a new publication."},"CreateSample":{"properties":{"sample_date":{"type":"string","format":"date-time","title":"Sample Date"},"depth_top":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Depth Top"},"depth_bottom":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Depth Bottom"},"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"field_activity_id":{"type":"integer","title":"Field Activity Id"},"field_event_participant_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Field Event Participant Id"},"sample_name":{"type":"string","title":"Sample Name"},"sample_matrix":{"$ref":"#/components/schemas/sample_matrix"},"sample_method":{"$ref":"#/components/schemas/sample_method"},"qc_type":{"$ref":"#/components/schemas/qc_type"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["sample_date","field_activity_id","sample_name","sample_matrix","sample_method","qc_type"],"title":"CreateSample"},"CreateSensor":{"properties":{"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"name":{"type":"string","title":"Name"},"sensor_type":{"$ref":"#/components/schemas/sensor_type"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"serial_no":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Serial No"},"pcn_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pcn Number"},"owner_agency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Agency"},"sensor_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sensor Status"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["name","sensor_type"],"title":"CreateSensor","description":"Schema for creating a new sensor."},"CreateSpring":{"properties":{"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"location_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Location Id"},"group_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Group Id"},"name":{"type":"string","title":"Name"},"first_visit_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"First Visit Date"},"notes":{"anyOf":[{"items":{"$ref":"#/components/schemas/CreateNote"},"type":"array"},{"type":"null"}],"title":"Notes"},"alternate_ids":{"anyOf":[{"items":{"$ref":"#/components/schemas/CreateThingIdLink"},"type":"array"},{"type":"null"}],"title":"Alternate Ids"},"monitoring_frequencies":{"anyOf":[{"items":{"$ref":"#/components/schemas/CreateMonitoringFrequency"},"type":"array"},{"type":"null"}],"title":"Monitoring Frequencies"},"spring_type":{"anyOf":[{"$ref":"#/components/schemas/spring_type"},{"type":"null"}]}},"type":"object","required":["name"],"title":"CreateSpring","description":"Schema for creating a spring."},"CreateThingIdLink":{"properties":{"thing_id":{"type":"integer","title":"Thing Id"},"relation":{"type":"string","title":"Relation"},"alternate_id":{"type":"string","title":"Alternate Id"},"alternate_organization":{"type":"string","title":"Alternate Organization"}},"type":"object","required":["thing_id","relation","alternate_id","alternate_organization"],"title":"CreateThingIdLink","description":"Schema for creating a link between a thing and its ID."},"CreateWaterChemistryObservation":{"properties":{"parameter_id":{"type":"integer","title":"Parameter Id"},"observation_datetime":{"type":"string","format":"date-time","title":"Observation Datetime"},"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"sample_id":{"type":"integer","title":"Sample Id"},"sensor_id":{"type":"integer","title":"Sensor Id"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"},"unit":{"anyOf":[{"$ref":"#/components/schemas/unit"},{"type":"null"}]}},"type":"object","required":["parameter_id","observation_datetime","sample_id","sensor_id","value","unit"],"title":"CreateWaterChemistryObservation"},"CreateWell":{"properties":{"well_depth":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Well Depth","description":"Well depth in feet"},"hole_depth":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Hole Depth","description":"Hole depth in feet"},"well_casing_depth":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Well Casing Depth","description":"Well casing depth in feet"},"measuring_point_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Measuring Point Height","description":"Measuring point height in feet"},"well_pump_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Pump Depth"},"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"location_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Location Id"},"group_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Group Id"},"name":{"type":"string","title":"Name"},"first_visit_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"First Visit Date"},"notes":{"anyOf":[{"items":{"$ref":"#/components/schemas/CreateNote"},"type":"array"},{"type":"null"}],"title":"Notes"},"alternate_ids":{"anyOf":[{"items":{"$ref":"#/components/schemas/CreateThingIdLink"},"type":"array"},{"type":"null"}],"title":"Alternate Ids"},"monitoring_frequencies":{"anyOf":[{"items":{"$ref":"#/components/schemas/CreateMonitoringFrequency"},"type":"array"},{"type":"null"}],"title":"Monitoring Frequencies"},"well_purposes":{"anyOf":[{"items":{"$ref":"#/components/schemas/well_purpose"},"type":"array"},{"type":"null"}],"title":"Well Purposes"},"well_depth_source":{"anyOf":[{"$ref":"#/components/schemas/origin_type"},{"type":"null"}]},"well_casing_diameter":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Well Casing Diameter","description":"Well casing diameter in inches"},"well_casing_materials":{"anyOf":[{"items":{"$ref":"#/components/schemas/casing_material"},"type":"array"},{"type":"null"}],"title":"Well Casing Materials"},"measuring_point_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Measuring Point Description"},"well_completion_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Well Completion Date"},"well_completion_date_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Completion Date Source"},"well_driller_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Driller Name"},"well_construction_method":{"anyOf":[{"$ref":"#/components/schemas/well_construction_method"},{"type":"null"}]},"well_construction_method_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Construction Method Source"},"well_pump_type":{"anyOf":[{"$ref":"#/components/schemas/well_pump_type"},{"type":"null"}]},"is_suitable_for_datalogger":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Suitable For Datalogger"},"is_open":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Open"},"well_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Status"},"monitoring_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Monitoring Status"},"formation_completion_code":{"anyOf":[{"$ref":"#/components/schemas/formation_code"},{"type":"null"}]},"nma_formation_zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Formation Zone"}},"type":"object","required":["name"],"title":"CreateWell","description":"Schema for creating a well."},"CreateWellScreen":{"properties":{"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"thing_id":{"type":"integer","title":"Thing Id"},"aquifer_system_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Aquifer System Id"},"geologic_formation_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Geologic Formation Id"},"screen_depth_bottom":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Screen Depth Bottom","description":"Screen depth bottom in feet"},"screen_depth_top":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Screen Depth Top","description":"Screen depth top in feet"},"screen_type":{"anyOf":[{"$ref":"#/components/schemas/screen_type"},{"type":"null"}]},"screen_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screen Description"}},"type":"object","required":["thing_id"],"title":"CreateWellScreen","description":"Schema for creating a well screen."},"DeploymentResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"thing_id":{"type":"integer","title":"Thing Id"},"sensor":{"$ref":"#/components/schemas/SensorResponse"},"installation_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Installation Date"},"removal_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Removal Date"},"recording_interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Recording Interval"},"recording_interval_units":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recording Interval Units"},"hanging_cable_length":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Hanging Cable Length"},"hanging_point_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Hanging Point Height"},"hanging_point_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hanging Point Description"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["id","created_at","release_status","thing_id","sensor","installation_date","removal_date","recording_interval","recording_interval_units","hanging_cable_length","hanging_point_height","hanging_point_description","notes"],"title":"DeploymentResponse"},"EmailResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"contact_id":{"type":"integer","title":"Contact Id"},"email":{"type":"string","title":"Email"},"email_type":{"$ref":"#/components/schemas/email_type"}},"type":"object","required":["id","created_at","release_status","contact_id","email","email_type"],"title":"EmailResponse","description":"Response schema for email details."},"Feature":{"properties":{"type":{"type":"string","title":"Type","default":"Feature"},"geometry":{"$ref":"#/components/schemas/schemas__thing__GeoJSONGeometry"},"properties":{"additionalProperties":true,"type":"object","title":"Properties","default":{}}},"type":"object","required":["geometry"],"title":"Feature","description":"Feature schema for GeoJSON response."},"FeatureCollectionResponse":{"properties":{"type":{"type":"string","title":"Type","default":"FeatureCollection"},"features":{"items":{"$ref":"#/components/schemas/Feature"},"type":"array","title":"Features","default":[]}},"type":"object","title":"FeatureCollectionResponse","description":"Response schema for GeoJSON FeatureCollection."},"FieldActivityResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"field_event_id":{"type":"integer","title":"Field Event Id"},"activity_type":{"$ref":"#/components/schemas/activity_type"}},"type":"object","required":["id","created_at","release_status","field_event_id","activity_type"],"title":"FieldActivityResponse"},"FieldEventParticipantResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"field_event_id":{"type":"integer","title":"Field Event Id"},"contact_id":{"type":"integer","title":"Contact Id"},"participant_role":{"type":"string","title":"Participant Role"},"participant":{"$ref":"#/components/schemas/ContactResponse"}},"type":"object","required":["id","created_at","release_status","field_event_id","contact_id","participant_role","participant"],"title":"FieldEventParticipantResponse"},"FieldEventResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"thing_id":{"type":"integer","title":"Thing Id"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["id","created_at","release_status","thing_id","event_date","notes"],"title":"FieldEventResponse"},"GeoJSONProperties":{"properties":{"elevation":{"type":"number","title":"Elevation"},"elevation_unit":{"type":"string","title":"Elevation Unit","default":"ft"},"vertical_datum":{"type":"string","title":"Vertical Datum","default":"NAVD88"},"elevation_method":{"anyOf":[{"$ref":"#/components/schemas/elevation_method"},{"type":"null"}]},"county":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"County"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"quad_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quad Name"},"utm_coordinates":{"$ref":"#/components/schemas/GeoJSONUTMCoordinates"},"notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Notes","default":[]},"nma_location_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Location Notes"},"nma_data_reliability":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Data Reliability"},"nma_date_created":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Nma Date Created"},"nma_site_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Nma Site Date"}},"type":"object","required":["elevation","elevation_method"],"title":"GeoJSONProperties"},"GeoJSONUTMCoordinates":{"properties":{"easting":{"type":"number","title":"Easting"},"northing":{"type":"number","title":"Northing"},"utm_zone":{"type":"string","title":"Utm Zone","default":"13N"},"horizontal_datum":{"type":"string","title":"Horizontal Datum","default":"NAD83"}},"type":"object","required":["easting","northing"],"title":"GeoJSONUTMCoordinates"},"GroundwaterLevelObservationResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"sample_id":{"type":"integer","title":"Sample Id"},"sensor_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sensor Id"},"observation_datetime":{"type":"string","title":"Observation Datetime"},"parameter":{"$ref":"#/components/schemas/ParameterResponse"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"},"unit":{"$ref":"#/components/schemas/unit"},"nma_data_quality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Data Quality"},"depth_to_water_bgs":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Depth To Water Bgs"},"measuring_point_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Measuring Point Height"},"groundwater_level_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Groundwater Level Reason"}},"type":"object","required":["id","created_at","release_status","sample_id","sensor_id","observation_datetime","parameter","value","unit","depth_to_water_bgs","measuring_point_height","groundwater_level_reason"],"title":"GroundwaterLevelObservationResponse"},"GroupResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"project_area":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Area"},"group_type":{"anyOf":[{"$ref":"#/components/schemas/group_type"},{"type":"null"}]},"parent_group_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent Group Id"}},"type":"object","required":["id","created_at","release_status","name","description","project_area","group_type","parent_group_id"],"title":"GroupResponse","description":"Pydantic model for the response of a group.\nThis model can be extended to include additional fields as needed."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"LexiconCategoryResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["id","created_at","name"],"title":"LexiconCategoryResponse","description":"Pydantic model for the response of a lexicon category.\nThis model can be extended to include additional fields as needed."},"LexiconTermResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"term":{"type":"string","title":"Term"},"definition":{"type":"string","title":"Definition"},"categories":{"items":{"$ref":"#/components/schemas/LexiconCategoryResponse"},"type":"array","title":"Categories","default":[]}},"type":"object","required":["id","created_at","term","definition"],"title":"LexiconTermResponse","description":"Pydantic model for the response of a lexicon term.\nThis model can be extended to include additional fields as needed."},"LexiconTripleResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"subject":{"type":"string","title":"Subject"},"predicate":{"type":"string","title":"Predicate"},"object_":{"type":"string","title":"Object"}},"type":"object","required":["id","created_at","subject","predicate","object_"],"title":"LexiconTripleResponse"},"LocationGeoJSONResponse":{"properties":{"type":{"type":"string","title":"Type","default":"Feature"},"release_status":{"$ref":"#/components/schemas/release_status"},"geometry":{"$ref":"#/components/schemas/schemas__location__GeoJSONGeometry"},"properties":{"$ref":"#/components/schemas/GeoJSONProperties"}},"type":"object","required":["release_status","geometry","properties"],"title":"LocationGeoJSONResponse"},"LocationResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Notes","default":[]},"point":{"type":"string","title":"Point"},"elevation":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Elevation"},"horizontal_datum":{"type":"string","title":"Horizontal Datum","default":"WGS84"},"vertical_datum":{"type":"string","title":"Vertical Datum","default":"NAVD88"},"elevation_method":{"anyOf":[{"$ref":"#/components/schemas/elevation_method"},{"type":"null"}]},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"county":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"County"},"quad_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quad Name"},"nma_location_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Location Notes"},"nma_data_reliability":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Data Reliability"},"nma_date_created":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Nma Date Created"},"nma_site_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Nma Site Date"}},"type":"object","required":["id","created_at","release_status","point","elevation","elevation_method","state","county","quad_name"],"title":"LocationResponse","description":"Response schema for sample location details."},"MonitoringFrequencyResponse":{"properties":{"monitoring_frequency":{"$ref":"#/components/schemas/monitoring_frequency"},"start_date":{"type":"string","format":"date","title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},"type":"object","required":["monitoring_frequency","start_date","end_date"],"title":"MonitoringFrequencyResponse"},"NoteResponse":{"properties":{"note_type":{"$ref":"#/components/schemas/note_type"},"content":{"type":"string","title":"Content"},"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"target_id":{"type":"integer","title":"Target Id"},"target_table":{"type":"string","title":"Target Table"}},"type":"object","required":["note_type","content","id","created_at","release_status","target_id","target_table"],"title":"NoteResponse","description":"Response schema for Note details."},"ObservationResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"sample_id":{"type":"integer","title":"Sample Id"},"sensor_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sensor Id"},"observation_datetime":{"type":"string","title":"Observation Datetime"},"parameter":{"$ref":"#/components/schemas/ParameterResponse"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"},"unit":{"$ref":"#/components/schemas/unit"},"nma_data_quality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Data Quality"},"depth_to_water_bgs":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Depth To Water Bgs"},"measuring_point_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Measuring Point Height"},"groundwater_level_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Groundwater Level Reason"}},"type":"object","required":["id","created_at","release_status","sample_id","sensor_id","observation_datetime","parameter","value","unit","depth_to_water_bgs","measuring_point_height","groundwater_level_reason"],"title":"ObservationResponse","description":"Response model for observations.\nCombines groundwater level and geothermal observation responses."},"Page_AddressResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AddressResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[AddressResponse]"},"Page_AssetResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AssetResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[AssetResponse]"},"Page_ContactResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ContactResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[ContactResponse]"},"Page_DeploymentResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/DeploymentResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[DeploymentResponse]"},"Page_EmailResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EmailResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[EmailResponse]"},"Page_GroundwaterLevelObservationResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/GroundwaterLevelObservationResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[GroundwaterLevelObservationResponse]"},"Page_GroupResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/GroupResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[GroupResponse]"},"Page_LexiconCategoryResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/LexiconCategoryResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[LexiconCategoryResponse]"},"Page_LexiconTermResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/LexiconTermResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[LexiconTermResponse]"},"Page_LexiconTripleResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/LexiconTripleResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[LexiconTripleResponse]"},"Page_LocationResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/LocationResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[LocationResponse]"},"Page_ObservationResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ObservationResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[ObservationResponse]"},"Page_PhoneResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PhoneResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[PhoneResponse]"},"Page_SampleResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SampleResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[SampleResponse]"},"Page_SensorResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SensorResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[SensorResponse]"},"Page_SpringResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SpringResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[SpringResponse]"},"Page_ThingIdLinkResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ThingIdLinkResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[ThingIdLinkResponse]"},"Page_ThingResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ThingResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[ThingResponse]"},"Page_TransducerObservationWithBlockResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TransducerObservationWithBlockResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[TransducerObservationWithBlockResponse]"},"Page_WaterChemistryObservationResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WaterChemistryObservationResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[WaterChemistryObservationResponse]"},"Page_WellResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WellResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[WellResponse]"},"Page_WellScreenResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WellScreenResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[WellScreenResponse]"},"Page_dict_":{"properties":{"items":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[dict]"},"ParameterResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"parameter_name":{"$ref":"#/components/schemas/parameter_name"},"matrix":{"type":"string","title":"Matrix"},"parameter_type":{"anyOf":[{"$ref":"#/components/schemas/parameter_type"},{"type":"null"}]},"cas_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cas Number"},"default_unit":{"anyOf":[{"$ref":"#/components/schemas/unit"},{"type":"null"}]}},"type":"object","required":["id","created_at","release_status","parameter_name","matrix","parameter_type","cas_number","default_unit"],"title":"ParameterResponse","description":"Pydantic model for the response of a parameter.\nThis model can be extended to include additional fields as needed."},"PermissionHistoryResponse":{"properties":{"permission_type":{"$ref":"#/components/schemas/permission_type"},"permission_allowed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Permission Allowed"},"start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},"type":"object","required":["permission_type","permission_allowed","start_date","end_date"],"title":"PermissionHistoryResponse","description":"Even though permission_allowed and start_date are not-nullable in the\ndatabase, they are nullable here to accommodate cases where no permission\nrecord exists for a given permission type."},"PhoneResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"contact_id":{"type":"integer","title":"Contact Id"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"phone_type":{"type":"string","title":"Phone Type"}},"type":"object","required":["id","created_at","release_status","contact_id","phone_type"],"title":"PhoneResponse","description":"Response schema for phone details."},"PublicationResponse":{"properties":{"id":{"type":"integer","title":"Id"},"title":{"type":"string","title":"Title"},"authors":{"items":{"$ref":"#/components/schemas/AuthorResponse"},"type":"array","title":"Authors"},"year":{"type":"integer","title":"Year"},"doi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doi"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"publication_type":{"$ref":"#/components/schemas/publication_type"}},"type":"object","required":["id","title","authors","year","publication_type"],"title":"PublicationResponse","description":"Schema for the response of a publication."},"ResourceNotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"ResourceNotFoundResponse"},"SampleResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"thing":{"$ref":"#/components/schemas/ThingResponse"},"field_event":{"$ref":"#/components/schemas/FieldEventResponse"},"field_activity":{"$ref":"#/components/schemas/FieldActivityResponse"},"contact":{"anyOf":[{"$ref":"#/components/schemas/ContactResponse"},{"type":"null"}]},"sample_date":{"type":"string","title":"Sample Date"},"sample_name":{"type":"string","title":"Sample Name"},"sample_matrix":{"$ref":"#/components/schemas/sample_matrix"},"sample_method":{"$ref":"#/components/schemas/sample_method"},"qc_type":{"$ref":"#/components/schemas/qc_type"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"depth_top":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Depth Top"},"depth_bottom":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Depth Bottom"}},"type":"object","required":["id","created_at","release_status","thing","field_event","field_activity","contact","sample_date","sample_name","sample_matrix","sample_method","qc_type","notes","depth_top","depth_bottom"],"title":"SampleResponse","description":"Developer's note\n\nThe frontend uses multiple fields for a thing, field_even, and field_activity,\nwhich is why full ThingResponse, FieldEventResponse, and FieldActivityResponse\nare returned. If the response becomes too large and slow, we can use\n.model_dump() and exlude fields to reduce the size."},"SensorResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"name":{"type":"string","title":"Name"},"sensor_type":{"$ref":"#/components/schemas/sensor_type"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"serial_no":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Serial No"},"pcn_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pcn Number"},"owner_agency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Agency"},"sensor_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sensor Status"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["id","created_at","release_status","name","sensor_type","model","serial_no","pcn_number","owner_agency","sensor_status","notes"],"title":"SensorResponse"},"SpringResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"name":{"type":"string","title":"Name"},"site_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Site Name"},"thing_type":{"type":"string","title":"Thing Type"},"current_location":{"$ref":"#/components/schemas/LocationGeoJSONResponse"},"first_visit_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"First Visit Date"},"groups":{"items":{"$ref":"#/components/schemas/GroupResponse"},"type":"array","title":"Groups","default":[]},"monitoring_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Monitoring Status"},"alternate_ids":{"items":{"$ref":"#/components/schemas/ThingIdLinkResponse"},"type":"array","title":"Alternate Ids","default":[]},"monitoring_frequencies":{"items":{"$ref":"#/components/schemas/MonitoringFrequencyResponse"},"type":"array","title":"Monitoring Frequencies","default":[]},"general_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"General Notes","default":[]},"sampling_procedure_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Sampling Procedure Notes","default":[]},"site_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Site Notes","default":[]},"spring_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Spring Type"}},"type":"object","required":["id","created_at","release_status","name","thing_type","current_location","first_visit_date","monitoring_status"],"title":"SpringResponse","description":"Response schema for spring details."},"ThingIdLinkResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"thing_id":{"type":"integer","title":"Thing Id"},"relation":{"type":"string","title":"Relation"},"alternate_id":{"type":"string","title":"Alternate Id"},"alternate_organization":{"$ref":"#/components/schemas/organization"}},"type":"object","required":["id","created_at","release_status","thing_id","relation","alternate_id","alternate_organization"],"title":"ThingIdLinkResponse"},"ThingResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"name":{"type":"string","title":"Name"},"site_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Site Name"},"thing_type":{"type":"string","title":"Thing Type"},"current_location":{"$ref":"#/components/schemas/LocationGeoJSONResponse"},"first_visit_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"First Visit Date"},"groups":{"items":{"$ref":"#/components/schemas/GroupResponse"},"type":"array","title":"Groups","default":[]},"monitoring_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Monitoring Status"},"alternate_ids":{"items":{"$ref":"#/components/schemas/ThingIdLinkResponse"},"type":"array","title":"Alternate Ids","default":[]},"monitoring_frequencies":{"items":{"$ref":"#/components/schemas/MonitoringFrequencyResponse"},"type":"array","title":"Monitoring Frequencies","default":[]},"general_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"General Notes","default":[]},"sampling_procedure_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Sampling Procedure Notes","default":[]},"site_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Site Notes","default":[]},"spring_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Spring Type"},"well_purposes":{"items":{"$ref":"#/components/schemas/well_purpose"},"type":"array","title":"Well Purposes","default":[]},"well_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Depth"},"well_depth_unit":{"type":"string","title":"Well Depth Unit","default":"ft"},"well_depth_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Depth Source"},"historic_depth_to_water":{"items":{"type":"string"},"type":"array","title":"Historic Depth To Water","default":[]},"hole_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Hole Depth"},"hole_depth_unit":{"type":"string","title":"Hole Depth Unit","default":"ft"},"well_casing_diameter":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Casing Diameter"},"well_casing_diameter_unit":{"type":"string","title":"Well Casing Diameter Unit","default":"in"},"well_casing_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Casing Depth"},"well_casing_depth_unit":{"type":"string","title":"Well Casing Depth Unit","default":"ft"},"well_casing_materials":{"items":{"$ref":"#/components/schemas/casing_material"},"type":"array","title":"Well Casing Materials","default":[]},"well_completion_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Well Completion Date"},"well_completion_date_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Completion Date Source"},"well_driller_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Driller Name"},"well_construction_method":{"anyOf":[{"$ref":"#/components/schemas/well_construction_method"},{"type":"null"}]},"well_construction_method_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Construction Method Source"},"well_pump_type":{"anyOf":[{"$ref":"#/components/schemas/well_pump_type"},{"type":"null"}]},"well_pump_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Pump Depth"},"well_pump_depth_unit":{"type":"string","title":"Well Pump Depth Unit","default":"ft"},"well_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Status"},"open_status":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Open Status"},"datalogger_suitability_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Datalogger Suitability Status"},"measuring_point_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Measuring Point Height"},"measuring_point_height_unit":{"type":"string","title":"Measuring Point Height Unit","default":"ft"},"measuring_point_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Measuring Point Description"},"aquifers":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Aquifers","default":[]},"water_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Water Notes","default":[]},"construction_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Construction Notes","default":[]},"contacts":{"items":{"$ref":"#/components/schemas/WellContactSummaryResponse"},"type":"array","title":"Contacts","default":[]},"permissions":{"items":{"$ref":"#/components/schemas/PermissionHistoryResponse"},"type":"array","title":"Permissions"},"formation_completion_code":{"anyOf":[{"$ref":"#/components/schemas/formation_code"},{"type":"null"}]},"nma_formation_zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Formation Zone"},"well_location_note":{"items":{"type":"string"},"type":"array","title":"Well Location Note","default":[]}},"type":"object","required":["id","created_at","release_status","name","thing_type","current_location","first_visit_date","monitoring_status","well_depth_source","well_completion_date","well_completion_date_source","well_driller_name","well_construction_method","well_construction_method_source","well_pump_type","well_pump_depth","well_status","open_status","datalogger_suitability_status","measuring_point_height","measuring_point_description","permissions","formation_completion_code","nma_formation_zone"],"title":"ThingResponse"},"ThingResponseForContact":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"name":{"type":"string","title":"Name"}},"type":"object","required":["id","created_at","release_status","name"],"title":"ThingResponseForContact","description":"Response schema for thing details related to a contact. All that is needed\nare the id and name"},"TransducerObservationBlockResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"review_status":{"$ref":"#/components/schemas/review_status"},"start_datetime":{"type":"string","format":"date-time","title":"Start Datetime"},"end_datetime":{"type":"string","format":"date-time","title":"End Datetime"},"parameter_id":{"type":"integer","title":"Parameter Id"}},"type":"object","required":["id","created_at","release_status","review_status","start_datetime","end_datetime","parameter_id"],"title":"TransducerObservationBlockResponse"},"TransducerObservationResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"value":{"type":"number","title":"Value"},"observation_datetime":{"type":"string","format":"date-time","title":"Observation Datetime"},"parameter_id":{"type":"integer","title":"Parameter Id"},"deployment_id":{"type":"integer","title":"Deployment Id"}},"type":"object","required":["id","created_at","release_status","value","observation_datetime","parameter_id","deployment_id"],"title":"TransducerObservationResponse"},"TransducerObservationWithBlockResponse":{"properties":{"observation":{"$ref":"#/components/schemas/TransducerObservationResponse"},"block":{"$ref":"#/components/schemas/TransducerObservationBlockResponse"}},"type":"object","required":["observation","block"],"title":"TransducerObservationWithBlockResponse"},"UpdateAddress":{"properties":{"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"contact_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Contact Id"},"address_line_1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Line 1"},"address_line_2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Line 2"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"postal_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postal Code"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"address_type":{"anyOf":[{"$ref":"#/components/schemas/address_type"},{"type":"null"}]}},"type":"object","title":"UpdateAddress","description":"Schema for updating address information."},"UpdateAsset":{"properties":{"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}},"type":"object","title":"UpdateAsset"},"UpdateContact":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"organization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization"},"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"role":{"anyOf":[{"$ref":"#/components/schemas/role"},{"type":"null"}]},"contact_type":{"anyOf":[{"$ref":"#/components/schemas/contact_type"},{"type":"null"}]},"thing_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thing Id"}},"type":"object","title":"UpdateContact","description":"Schema for updating contact information."},"UpdateEmail":{"properties":{"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"contact_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Contact Id"},"email_type":{"anyOf":[{"$ref":"#/components/schemas/email_type"},{"type":"null"}]}},"type":"object","title":"UpdateEmail","description":"Schema for updating email information."},"UpdateGroundwaterLevelObservation":{"properties":{"parameter_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parameter Id"},"observation_datetime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Observation Datetime"},"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"sample_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sample Id"},"sensor_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sensor Id"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"},"unit":{"anyOf":[{"$ref":"#/components/schemas/unit"},{"type":"null"}]},"measuring_point_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Measuring Point Height"},"groundwater_level_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Groundwater Level Reason"}},"type":"object","title":"UpdateGroundwaterLevelObservation"},"UpdateGroup":{"properties":{"project_area":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Area"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"parent_group_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent Group Id"},"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","title":"UpdateGroup","description":"Pydantic model for updating a group.\nThis model can be extended to include additional fields as needed."},"UpdateLexiconCategory":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","title":"UpdateLexiconCategory"},"UpdateLexiconTerm":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Term"},"definition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Definition"}},"type":"object","title":"UpdateLexiconTerm"},"UpdateLexiconTriple":{"properties":{"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"},"predicate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Predicate"},"object_":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object"}},"type":"object","title":"UpdateLexiconTriple"},"UpdateLocation":{"properties":{"point":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Point"},"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"notes":{"items":{"$ref":"#/components/schemas/UpdateNote"},"type":"array","title":"Notes","default":[]},"elevation":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Elevation"},"elevation_accuracy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Elevation Accuracy"},"elevation_method":{"anyOf":[{"$ref":"#/components/schemas/elevation_method"},{"type":"null"}]},"coordinate_accuracy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Coordinate Accuracy"},"coordinate_method":{"anyOf":[{"$ref":"#/components/schemas/coordinate_method"},{"type":"null"}]}},"type":"object","title":"UpdateLocation","description":"Schema for updating a location. Notes are managed via the polymorphic Notes table."},"UpdateNote":{"properties":{"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"note_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note Type"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"}},"type":"object","title":"UpdateNote","description":"Schema for updating an existing Note. All fields are optional"},"UpdatePhone":{"properties":{"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"contact_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Contact Id"},"phone_type":{"anyOf":[{"$ref":"#/components/schemas/phone_type"},{"type":"null"}]}},"type":"object","title":"UpdatePhone","description":"Schema for updating phone information."},"UpdateSample":{"properties":{"sample_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Sample Date"},"depth_top":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Depth Top"},"depth_bottom":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Depth Bottom"},"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"field_activity_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Field Activity Id"},"field_event_participant_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Field Event Participant Id"},"sample_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sample Name"},"sample_matrix":{"anyOf":[{"$ref":"#/components/schemas/sample_matrix"},{"type":"null"}]},"sample_method":{"anyOf":[{"$ref":"#/components/schemas/sample_method"},{"type":"null"}]},"qc_type":{"anyOf":[{"$ref":"#/components/schemas/qc_type"},{"type":"null"}]},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","title":"UpdateSample"},"UpdateSensor":{"properties":{"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"sensor_type":{"anyOf":[{"$ref":"#/components/schemas/sensor_type"},{"type":"null"}]},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"serial_no":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Serial No"},"pcn_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pcn Number"},"owner_agency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Agency"},"sensor_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sensor Status"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","title":"UpdateSensor"},"UpdateSpring":{"properties":{"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"first_visit_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"First Visit Date"},"spring_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Spring Type"}},"type":"object","title":"UpdateSpring"},"UpdateThingIdLink":{"properties":{"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"alternate_organization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alternate Organization"},"alternate_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alternate Id"},"relation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relation"}},"type":"object","title":"UpdateThingIdLink"},"UpdateWaterChemistryObservation":{"properties":{"parameter_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parameter Id"},"observation_datetime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Observation Datetime"},"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"sample_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sample Id"},"sensor_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sensor Id"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"},"unit":{"anyOf":[{"$ref":"#/components/schemas/unit"},{"type":"null"}]}},"type":"object","title":"UpdateWaterChemistryObservation"},"UpdateWell":{"properties":{"well_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Depth"},"hole_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Hole Depth"},"well_casing_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Casing Depth"},"measuring_point_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Measuring Point Height"},"well_pump_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Pump Depth"},"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"first_visit_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"First Visit Date"},"well_purposes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Well Purposes"},"well_construction_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Construction Notes"},"well_casing_diameter":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Casing Diameter"},"well_casing_materials":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Well Casing Materials"},"nma_formation_zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Formation Zone"}},"type":"object","title":"UpdateWell"},"UpdateWellScreen":{"properties":{"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"aquifer_system_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Aquifer System Id"},"geologic_formation_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Geologic Formation Id"},"screen_depth_bottom":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Screen Depth Bottom"},"screen_depth_top":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Screen Depth Top"},"screen_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screen Description"},"screen_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screen Type"}},"type":"object","title":"UpdateWellScreen"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WaterChemistryObservationResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"sample_id":{"type":"integer","title":"Sample Id"},"sensor_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sensor Id"},"observation_datetime":{"type":"string","title":"Observation Datetime"},"parameter":{"$ref":"#/components/schemas/ParameterResponse"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"},"unit":{"$ref":"#/components/schemas/unit"},"nma_data_quality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Data Quality"}},"type":"object","required":["id","created_at","release_status","sample_id","sensor_id","observation_datetime","parameter","value","unit"],"title":"WaterChemistryObservationResponse"},"WaterLevelBulkUploadResponse":{"properties":{"summary":{"$ref":"#/components/schemas/WaterLevelBulkUploadSummary"},"water_levels":{"items":{"$ref":"#/components/schemas/WaterLevelBulkUploadRow"},"type":"array","title":"Water Levels"},"validation_errors":{"items":{"type":"string"},"type":"array","title":"Validation Errors"}},"type":"object","required":["summary","water_levels","validation_errors"],"title":"WaterLevelBulkUploadResponse"},"WaterLevelBulkUploadRow":{"properties":{"well_name_point_id":{"type":"string","title":"Well Name Point Id"},"field_event_id":{"type":"integer","title":"Field Event Id"},"field_activity_id":{"type":"integer","title":"Field Activity Id"},"sample_id":{"type":"integer","title":"Sample Id"},"observation_id":{"type":"integer","title":"Observation Id"},"measurement_date_time":{"type":"string","title":"Measurement Date Time"},"level_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Level Status"},"data_quality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Quality"}},"type":"object","required":["well_name_point_id","field_event_id","field_activity_id","sample_id","observation_id","measurement_date_time","level_status","data_quality"],"title":"WaterLevelBulkUploadRow"},"WaterLevelBulkUploadSummary":{"properties":{"total_rows_processed":{"type":"integer","title":"Total Rows Processed"},"total_rows_imported":{"type":"integer","title":"Total Rows Imported"},"validation_errors_or_warnings":{"type":"integer","title":"Validation Errors Or Warnings"}},"type":"object","required":["total_rows_processed","total_rows_imported","validation_errors_or_warnings"],"title":"WaterLevelBulkUploadSummary"},"WellContactSummaryResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"organization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization"},"role":{"$ref":"#/components/schemas/role"},"contact_type":{"$ref":"#/components/schemas/contact_type"}},"type":"object","required":["id","created_at","release_status","role","contact_type"],"title":"WellContactSummaryResponse"},"WellDetailsFieldActivityResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"field_event_id":{"type":"integer","title":"Field Event Id"},"activity_type":{"$ref":"#/components/schemas/activity_type"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"samples":{"items":{"$ref":"#/components/schemas/WellDetailsFieldEventSampleResponse"},"type":"array","title":"Samples"}},"type":"object","required":["id","created_at","release_status","field_event_id","activity_type"],"title":"WellDetailsFieldActivityResponse"},"WellDetailsFieldEventResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"thing_id":{"type":"integer","title":"Thing Id"},"event_date":{"type":"string","title":"Event Date"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"field_event_participants":{"items":{"$ref":"#/components/schemas/FieldEventParticipantResponse"},"type":"array","title":"Field Event Participants"},"field_activities":{"items":{"$ref":"#/components/schemas/WellDetailsFieldActivityResponse"},"type":"array","title":"Field Activities"}},"type":"object","required":["id","created_at","release_status","thing_id","event_date"],"title":"WellDetailsFieldEventResponse"},"WellDetailsFieldEventSampleResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"contact":{"anyOf":[{"$ref":"#/components/schemas/ContactResponse"},{"type":"null"}]},"sample_date":{"type":"string","title":"Sample Date"},"sample_name":{"type":"string","title":"Sample Name"},"sample_matrix":{"$ref":"#/components/schemas/sample_matrix"},"sample_method":{"$ref":"#/components/schemas/sample_method"},"qc_type":{"$ref":"#/components/schemas/qc_type"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"depth_top":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Depth Top"},"depth_bottom":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Depth Bottom"},"observations":{"items":{"$ref":"#/components/schemas/ObservationResponse"},"type":"array","title":"Observations"}},"type":"object","required":["id","created_at","release_status","sample_date","sample_name","sample_matrix","sample_method","qc_type"],"title":"WellDetailsFieldEventSampleResponse"},"WellDetailsResponse":{"properties":{"well":{"$ref":"#/components/schemas/WellResponse"},"contacts":{"items":{"$ref":"#/components/schemas/ContactResponse"},"type":"array","title":"Contacts"},"sensors":{"items":{"$ref":"#/components/schemas/SensorResponse"},"type":"array","title":"Sensors"},"deployments":{"items":{"$ref":"#/components/schemas/DeploymentResponse"},"type":"array","title":"Deployments"},"well_screens":{"items":{"$ref":"#/components/schemas/WellScreenBaseResponse"},"type":"array","title":"Well Screens"},"field_events":{"items":{"$ref":"#/components/schemas/WellDetailsFieldEventResponse"},"type":"array","title":"Field Events"},"first_field_event":{"anyOf":[{"$ref":"#/components/schemas/WellDetailsFieldEventResponse"},{"type":"null"}]}},"type":"object","required":["well"],"title":"WellDetailsResponse"},"WellExportResponse":{"properties":{"well":{"$ref":"#/components/schemas/WellResponse"},"contacts":{"items":{"$ref":"#/components/schemas/ContactResponse"},"type":"array","title":"Contacts"},"sensors":{"items":{"$ref":"#/components/schemas/SensorResponse"},"type":"array","title":"Sensors"},"deployments":{"items":{"$ref":"#/components/schemas/DeploymentResponse"},"type":"array","title":"Deployments"}},"type":"object","required":["well"],"title":"WellExportResponse"},"WellResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"name":{"type":"string","title":"Name"},"site_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Site Name"},"thing_type":{"type":"string","title":"Thing Type"},"current_location":{"$ref":"#/components/schemas/LocationGeoJSONResponse"},"first_visit_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"First Visit Date"},"groups":{"items":{"$ref":"#/components/schemas/GroupResponse"},"type":"array","title":"Groups","default":[]},"monitoring_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Monitoring Status"},"alternate_ids":{"items":{"$ref":"#/components/schemas/ThingIdLinkResponse"},"type":"array","title":"Alternate Ids","default":[]},"monitoring_frequencies":{"items":{"$ref":"#/components/schemas/MonitoringFrequencyResponse"},"type":"array","title":"Monitoring Frequencies","default":[]},"general_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"General Notes","default":[]},"sampling_procedure_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Sampling Procedure Notes","default":[]},"site_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Site Notes","default":[]},"well_purposes":{"items":{"$ref":"#/components/schemas/well_purpose"},"type":"array","title":"Well Purposes","default":[]},"well_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Depth"},"well_depth_unit":{"type":"string","title":"Well Depth Unit","default":"ft"},"well_depth_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Depth Source"},"historic_depth_to_water":{"items":{"type":"string"},"type":"array","title":"Historic Depth To Water","default":[]},"hole_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Hole Depth"},"hole_depth_unit":{"type":"string","title":"Hole Depth Unit","default":"ft"},"well_casing_diameter":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Casing Diameter"},"well_casing_diameter_unit":{"type":"string","title":"Well Casing Diameter Unit","default":"in"},"well_casing_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Casing Depth"},"well_casing_depth_unit":{"type":"string","title":"Well Casing Depth Unit","default":"ft"},"well_casing_materials":{"items":{"$ref":"#/components/schemas/casing_material"},"type":"array","title":"Well Casing Materials","default":[]},"well_completion_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Well Completion Date"},"well_completion_date_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Completion Date Source"},"well_driller_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Driller Name"},"well_construction_method":{"anyOf":[{"$ref":"#/components/schemas/well_construction_method"},{"type":"null"}]},"well_construction_method_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Construction Method Source"},"well_pump_type":{"anyOf":[{"$ref":"#/components/schemas/well_pump_type"},{"type":"null"}]},"well_pump_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Pump Depth"},"well_pump_depth_unit":{"type":"string","title":"Well Pump Depth Unit","default":"ft"},"well_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Status"},"open_status":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Open Status"},"datalogger_suitability_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Datalogger Suitability Status"},"measuring_point_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Measuring Point Height"},"measuring_point_height_unit":{"type":"string","title":"Measuring Point Height Unit","default":"ft"},"measuring_point_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Measuring Point Description"},"aquifers":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Aquifers","default":[]},"water_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Water Notes","default":[]},"construction_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Construction Notes","default":[]},"contacts":{"items":{"$ref":"#/components/schemas/WellContactSummaryResponse"},"type":"array","title":"Contacts","default":[]},"permissions":{"items":{"$ref":"#/components/schemas/PermissionHistoryResponse"},"type":"array","title":"Permissions"},"formation_completion_code":{"anyOf":[{"$ref":"#/components/schemas/formation_code"},{"type":"null"}]},"nma_formation_zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Formation Zone"},"well_location_note":{"items":{"type":"string"},"type":"array","title":"Well Location Note","default":[]}},"type":"object","required":["id","created_at","release_status","name","thing_type","current_location","first_visit_date","monitoring_status","well_depth_source","well_completion_date","well_completion_date_source","well_driller_name","well_construction_method","well_construction_method_source","well_pump_type","well_pump_depth","well_status","open_status","datalogger_suitability_status","measuring_point_height","measuring_point_description","permissions","formation_completion_code","nma_formation_zone"],"title":"WellResponse","description":"Response schema for well details."},"WellScreenBaseResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"thing_id":{"type":"integer","title":"Thing Id"},"aquifer_system_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Aquifer System Id"},"aquifer_system":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aquifer System"},"aquifer_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aquifer Type"},"geologic_formation_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Geologic Formation Id"},"geologic_formation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Geologic Formation"},"screen_depth_bottom":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Screen Depth Bottom"},"screen_depth_bottom_unit":{"type":"string","title":"Screen Depth Bottom Unit","default":"ft"},"screen_depth_top":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Screen Depth Top"},"screen_depth_top_unit":{"type":"string","title":"Screen Depth Top Unit","default":"ft"},"screen_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screen Type"},"screen_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screen Description"}},"type":"object","required":["id","created_at","release_status","thing_id"],"title":"WellScreenBaseResponse"},"WellScreenResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"thing_id":{"type":"integer","title":"Thing Id"},"aquifer_system_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Aquifer System Id"},"aquifer_system":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aquifer System"},"aquifer_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aquifer Type"},"geologic_formation_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Geologic Formation Id"},"geologic_formation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Geologic Formation"},"screen_depth_bottom":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Screen Depth Bottom"},"screen_depth_bottom_unit":{"type":"string","title":"Screen Depth Bottom Unit","default":"ft"},"screen_depth_top":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Screen Depth Top"},"screen_depth_top_unit":{"type":"string","title":"Screen Depth Top Unit","default":"ft"},"screen_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screen Type"},"screen_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screen Description"},"thing":{"$ref":"#/components/schemas/WellResponse"}},"type":"object","required":["id","created_at","release_status","thing_id","thing"],"title":"WellScreenResponse","description":"Response schema for well screen details."},"activity_type":{"type":"string","enum":["well inventory","groundwater level","water chemistry"],"title":"activity_type"},"address_type":{"type":"string","enum":["Primary","Work","Personal","Mailing","Physical"],"title":"address_type"},"casing_material":{"type":"string","enum":["PVC","Steel","Concrete"],"title":"casing_material"},"contact_type":{"type":"string","enum":["Primary","Secondary","Field Event Participant"],"title":"contact_type"},"coordinate_method":{"type":"string","enum":["Unknown","Differentially corrected GPS","Survey-grade global positioning system (SGPS)","GPS, uncorrected","Interpolated from map","Interpolated from DEM","Reported","Transit, theodolite, or other survey method"],"title":"coordinate_method"},"elevation_method":{"type":"string","enum":["Altimeter","Differentially corrected GPS","Survey-grade GPS","Global positioning system (GPS)","LiDAR DEM","Level or other survey method","Interpolated from topographic map","Interpolated from digital elevation model (DEM)","Reported","Survey-grade Global Navigation Satellite Sys, Lvl1","USGS National Elevation Dataset (NED)","Unknown"],"title":"elevation_method"},"email_type":{"type":"string","enum":["Primary","Work","Personal"],"title":"email_type"},"formation_code":{"type":"string","enum":["000EXRV","000IRSV","050QUAL","100QBAS","110ALVM","110AVMB","110BLSN","110NTGU","110PTODC","111MCCR","112ANCH","112CURB","112LAMA","112LAMAb","112LGUN","112QTBF","112QTBFlac","112QTBFpd","112QTBFppm","112SNTF","112SNTFA","112SNTFOB","112SNTFP","112TRTO","120DTIL","120ELRT","120IRSV","120SBLC","120SRVB","120SRVBf","120TSBV_Lower","120TSBV_Upper","121CHMT","121CHMTv","121CHMTvs","121OGLL","121PUYEF","121TSUQ","121TSUQa","121TSUQacu","121TSUQacuf","121TSUQaml","121TSUQb","121TSUQbfl","121TSUQbfm","121TSUQbp","121TSUQce","121TSUQe","121TSUQs","121TSUQsa","121TSUQsc","121TSUQsf","122CHOC","122CRTO","122OJOC","122PICR","122PPTS","122SNTFP","123DTILSPRS","123DTMGandbas","123DTMGign","123DTMGrhydac","123ESPN","123GLST","123PICS","123PICSc","123PICSl","123SPRSDTMGlava","123SPRSlower","123SPRSmid_uppe","124BACA","124CBMN","124LLVS","124PSCN","124RGIN","124SNJS","124TPCS","125NCMN","125NCMNS","125RTON","130CALDFLOOR","180TKSCC_Upper","180TKTR","210CRCS","210GLUPC_Lower","210HOSTD","210MCDK","210MNCS","210MNCSL","210MNCSU","211CLFHV","211CRLL","211CRVC","211DKOT","211DLCO","211DLTN","211FRHS","211FRLD","211FRMG","211GBSNC","211GLLG","211GLLP","211GRRG","211GRRS","211HOST","211KRLD","211LWIS","211MENF","211MENFU","211MVRD","211OJAM","211PCCF","211PIRR","211PNLK","211SMKH","211TLLS","212KTRP","217PRGR","220ENRD","220JURC","220NAVJ","221BLFF","221CSPG","221ERADU","221MRSN","221MRSN/BBSN","221MRSN/JCKP","221MRSN/RCAP","221MRSN/WWCN","221SLWS","221SMVL","221TDLT","221WSRC","221ZUNIS","231AGZC","231AGZCU","231CHNL","231CORR","231DCKM","231PFDF","231PFDFL","231PFDFM","231PFDFU","231RCKP","231SNRS","231SNSL","231SRMP","231WNGT","260SNAN","260SNAN_lower","261SNGL","300YESO","300YESO_lower","300YESO_upper","310ABO","310DCLL","310GLOR","310MBLC","310TRRS","310YESO","310YESOG","312CSTL","312RSLR","313ARTS","313BLCN","313BRUC","313CKBF","313CLBD","313CPTN","313GDLP","313GOSP","313SADG","313SADR","313TNSL","313YATS","315LABR","315YESOABO","318ABO","318BSPG","318JOYT","318YESO","319BRSM","320HLDR","320PENN","320SNDI","321SGDC","322BEMN","325GBLR","325MDER","325MDERL","325MDERU","325SAND","326MGDL","340EPRS","350PZBA","350PZBB","400EMBD","400PCMB","400PREC","400PRECintr","400PRST","400TUSS","410PRCG","410PRCGf","410PRCQ","410PRCQf","121GILA","312DYLK","120WMVL","313GRBG","318ABOL","318ABOU","112SNTFU","310FRNR","312OCHO","313AZOT","313QUEN","319HUCO","313SVRV","313CABD","320GRMS","211CLRDH","120BRLM","122RUBO","313SADRL","313SADRU","313BRNL","318CPDR","121BDHC","313SADY","221SRFLL","221BLUF","221COSP","317ABYS","221BRSB","310SYDR","400SDVL","221SRFL","310SGRC","231TCVS","211DCRS","211ALSN","211LVNN","211MORD","210PRMD","124ANMS","211NBRR","111ALVM","122SNTFL","111CPLN","120CRSN","111CRMS","111CRMSA","111SPOL","110TURT","221RCPR","320BLNG","112ANCHsr","121TSUQae","230TRSC","122TSUQdx","123PICSu","123PICSm","123PICSmc","120VBVC","120VCSS","124DMDT","325ALMT","400SAND","318VCPK","318BSVP","100ALVM","310PRMN","110AVPS","313CRCX","112SLBL","112SBCRC","313CRDM","112SBDM","120BLSN","112SBCR","112HCBL","120IVIG","112RLBL","112EFBL","112GRBL","123SAND","210MRNH","320ALMT","313DLRM","300PLZC","122SPRS","110AVTV","313DMBS","120ERSV"],"title":"formation_code"},"group_type":{"type":"string","enum":["Monitoring Plan","Geographic Area","Historical"],"title":"group_type"},"monitoring_frequency":{"type":"string","enum":["Monthly","Bimonthly","Bimonthly reported","Quarterly","Biannual","Annual","Decadal","Event-based"],"title":"monitoring_frequency"},"note_type":{"type":"string","enum":["Access","Directions","Communication","Construction","Maintenance","Historical","General","Water","Water Quality","Sampling Procedure","Coordinate","OwnerComment","Site Notes (legacy)"],"title":"note_type"},"organization":{"type":"string","enum":["Unknown","City of Aztec","Daybreak Investments","Vallecitos HOA","SFC, Santa Fe Animal Shelter","El Guicu Ditch Association","Santa Fe Municipal Airport","Uluru Development","AllSup's Convenience Stores","Santa Fe Downs Resort","City of Truth or Consequences, WWTP","Riverbend Hotsprings","Armendaris Ranch","El Paso Water","BLM, Socorro Field Office","USFWS","Sile MDWCA","Pena Blanca Water & Sanitation District","Town of Questa","Town of Cerro","Farr Cattle Company","Carrizozo Orchard","USFS, Kiowa Grasslands","Cloud Country West Subdivision","Chama West WUA","El Rito Regional Water and Waste Water Association","West Rim MDWUA","Village of Willard","Quemado Municipal Water & SWA","Coyote Creek MDWUA","Lamy MDWCA","La Joya CWDA","NM Firefighters Training Academy","Cebolleta Land Grant","Madrid Water Co-op","Sun Valley Water and Sanitation","Bluewater Lake MDWCA","Bluewater Acres Domestic WUA","Lybrook MDWCA","New Mexico Museum of Natural History","Hillsboro MDWCA","Tyrone MDWCA","Santa Clara Water System","Casas Adobes MDWCA","Lake Roberts WUA","El Creston MDWCA","Reserve Municipality Water Works","Town of Estancia","Pie Town MDWCA","Roosevelt SWCD","Otis MDWCA","White Cliffs MDWUA","Vista Linda Water Co-op","Anasazi Trails Water Co-op","Canon MDWCA","Placitas Trails Water Co-op","BLM, Roswell Office","Forked Lightning Ranch","Cottonwood RWA","Pinon Ridge WUA","McSherry Farms","Agua Sana WUA","Chamita MDWCA","W Spear-bar Ranch","Village of Capitan","Brazos MDWCA","Alto Alps HOA","Chiricahua Desert Museum","Bike Ranch","Hachita MDWCA","Carrizozo Municipal Water","Dunhill Ranch","Santa Fe Conservation Trust","NMSU","USGS","TWDB","NMED","NMOSE","NMBGMR","Bernalillo County","BLM","BLM Taos Office","SFC","SFC, Fire Facilities","SFC, Utilities Dept.","SFC, Valle Vista Water Utility, Inc.","City of Santa Fe","City of Santa Fe WWTP","City of Santa Fe, Municipal Recreation Complex","City of Santa Fe, Sangre de Cristo Water Co.","NMISC","PVACD","Bayard","SNL","USFS","NMT","NPS","NMRWA","NMDOT","Taos SWCD","Otero SWCD","Northeastern SWCD","CDWR","Pendaries Village","A&T Pump & Well Service, LLC","A. G. Wassenaar, Inc","AMEC","Balleau Groundwater, Inc","CDM Smith","CH2M Hill","Corbin Consulting, Inc","Chevron","Daniel B. Stephens & Associates, Inc","EnecoTech","Faith Engineering, Inc","Foster Well Service, Inc","Glorieta Geoscience, Inc","Golder Associates, Inc","Hathorn's Well Service, Inc","Hydroscience Associates, Inc","IC Tech, Inc","John Shomaker & Associates, Inc","Kuckleman Pump Service","Los Golondrinas","Minton Engineers","MJDarrconsult, Inc","Puerta del Canon Ranch","Rodgers & Company, Inc","San Pedro Creek Estates HOA","Statewide Drilling, Inc","Tec Drilling Limited","Tetra Tech, Inc","Thompson Drilling, Inc","Witcher & Associates","Zeigler Geologic Consulting, LLC","Sandia Well Service, Inc","San Marcos Association","URS","Vista del Oro","Abeyta Engineering, Inc","Adobe Ranch","Agua Fria Community Water Association","Apache Gap Ranch","Aspendale Mountain Retreat","Augustin Plains Ranch LLC","B & B Cattle Co","Berridge Distributing Company","Bishop's Lodge","Bonanza Creek Ranch","Bug Scuffle Water Association","Wehinahpay Mountain Camp","Campbell Ranch","Capitol Ford Santa Fe","Cemex, Inc","Cerro Community Center","Santa Fe Jewish Center","Chupadero MDWCA","Cielo Lumbre HOA","Circle Cross Ranch","City of Alamogordo","City of Portales, Public Works Dept.","City of Socorro","Commonwealth Conservancy","Costilla MDWCA","Country Club Garden Mobile Home Park","Crossroads Cattle Co., Ltd","Double H Ranch","E.A. Meadows East","El Camino Realty, Inc","Eldorado Area Water & Sanitation District","Bourbon Grill at El Gancho","El Prado HOA","El Rancho de las Golondrinas","El Rito Canyon MDWCA","Encantado Enterprises","Estrella Concepts LLC","Sixteen Springs Fire Department","Fire Water Lodge","Ford County Land & Cattle Company, Inc","Friendly Construction, Inc","Hacienda Del Cerezo","Hefker Vega Ranch","High Nogal Ranch","Holloman Air Force Base","Hyde Park Estates MDWCA","Desert Village RV & Mobile Home Park","K. Schmitt Trust","La Cienega MDWCA","La Vista HOA","Land Ventures LLC","Las Lagunitas","Las Lagunitas HOA","Living World Ministries","Los Atrevidos, Inc","Los Prados HOA","Malaga MDWCA & SWA","Mangas Outfitters","Medina Gravel Pit","Mendenhall Trading Co","Mesa Verde Ranch","NMDGF","NMSU College of Agriculture","Naiche Development","NRAO","NMSA","Nogal MDWCA","O Bar O Ranch","OMI Wastewater Treatment Plant","Old Road Ranch Pardners Ltd","PNM Service Center","Peace Tabernacle Church","Pecos Trail Inn","Pelican Spa","Pistachio Tree Ranch","Rancho Encantado","Rancho San Lucas","Rancho San Marcos","Rancho Viejo Partnership","Ranney Ranch","Rio En Medio MDWCA","San Acacia MDWCA","San Juan Residences","Sangre de Cristo Estates","Santa Fe Community College","Sangre de Cristo Center","Santa Fe Horse Park","Santa Fe Opera","Santa Fe Waldorf School","Shidoni Foundry and Gallery","Sierra Grande Lodge","Sierra Vista Retirement Community","Slash Triangle Ranch","Stagecoach Motel","State of New Mexico","Stephenson Ranch","Sun Broadcasting Network","Tano Rd LLC","UNM-Taos","Tee Pee Ranch/Tee Pee Subdivision","Tent Rock, Inc","Tesuque MDWCA","The Great Cloud Zen Center","Three Rivers Ranch","Timberon Water and Sanitation District","Town of Magdalena","Town of Taos","Town of Taos, National Guard Armory","Trinity Ranch","Tularosa Basin National Desalination Research Facility","Turquoise Trail Charter School","US Bureau of Indian Affairs, Santa Fe Indian School","USFS, Carson NF, Taos Office","USFS, Cibola NF, Magdalena Ranger District","USFS, Santa Fe NF, Espanola Ranger District","Ute Mountain Farms","VA Hospital","Velte","Vereda Serena Property","Village of Corona","Village of Floyd","Village of Melrose","Village of Vaughn","Vista Land Company","Vista Redonda MDWCA","Vista de Oro de Placitas Water Users Coop","Walker Ranch","Wild & Woolley Trailer Ranch","Winter Brothers","Yates Petroleum Corporation","Zamora Accounting Services","Agua Sana MWCD","Canada Los Alamos MDWCA","Canjilon Mutual Domestic Water System","Cebolla Mutual Domestic","Chihuahuan Desert Rangeland Research Center (CDRRC)","East Rio Arriba SWCD","El Prado Municipal Water","Hachita Mutual Domestic","Jornada Experimental Range (JER)","La Canada Way HOA","Los Ojos Mutual Domestic","The Nature Conservancy (TNC)","Smith Ranch LLC","Zia Pueblo","Our Lady of Guadalupe (OLG)","PLSS"],"title":"organization"},"origin_type":{"type":"string","enum":["Reported by another agency","From driller's log or well report","Private geologist, consultant or univ associate","Interpreted fr geophys logs by source agency","Memory of owner, operator, driller","Measured by source agency","Reported by owner of well","Reported by person other than driller owner agency","Measured by NMBGMR staff","Other","Data Portal"],"title":"origin_type"},"parameter_name":{"type":"string","enum":["groundwater level","temperature","pH","Alkalinity, Total","Alkalinity as CaCO3","Alkalinity as OH-","Calcium","Calcium, total, unfiltered","Chloride","Carbonate","Conductivity, laboratory","Bicarbonate","Hardness (CaCO3)","Ion Balance","Potassium","Potassium, total, unfiltered","Magnesium","Magnesium, total, unfiltered","Sodium","Sodium, total, unfiltered","Sodium and Potassium combined","Sulfate","Total Anions","Total Cations","Total Dissolved Solids","Tritium","Age of Water using dissolved gases","Silver","Silver, total, unfiltered","Aluminum","Aluminum, total, unfiltered","Arsenic","Arsenic, total, unfiltered","Boron","Boron, total, unfiltered","Barium","Barium, total, unfiltered","Beryllium","Beryllium, total, unfiltered","Bromide","13C:12C ratio","14C content, pmc","Uncorrected C14 age","Cadmium","Cadmium, total, unfiltered","Chlorofluorocarbon-11 avg age","Chlorofluorocarbon-113 avg age","Chlorofluorocarbon-113/12 avg RATIO age","Chlorofluorocarbon-12 avg age","Cobalt","Cobalt, total, unfiltered","Chromium","Chromium, total, unfiltered","Copper","Copper, total, unfiltered","delta O18 sulfate","Sulfate 34 isotope ratio","Fluoride","Iron","Iron, total, unfiltered","Deuterium:Hydrogen ratio","Mercury","Mercury, total, unfiltered","Lithium","Lithium, total, unfiltered","Manganese","Manganese, total, unfiltered","Molybdenum","Molybdenum, total, unfiltered","Nickel","Nickel, total, unfiltered","Nitrite (as NO2)","Nitrite (as N)","Nitrate (as NO3)","Nitrate (as N)","18O:16O ratio","Lead","Lead, total, unfiltered","Phosphate","Antimony","Antimony, total, unfiltered","Selenium","Selenium, total, unfiltered","Sulfur hexafluoride","Silicon","Silicon, total, unfiltered","Silica","Tin","Tin, total, unfiltered","Strontium","Strontium, total, unfiltered","Strontium 87:86 ratio","Thorium","Thorium, total, unfiltered","Titanium","Titanium, total, unfiltered","Thallium","Thallium, total, unfiltered","Uranium (total, by ICP-MS)","Uranium, total, unfiltered","Vanadium","Vanadium, total, unfiltered","Zinc","Zinc, total, unfiltered","Corrected C14 in years","Arsenite (arsenic species)","Arsenate (arsenic species)","Cyanide","Estimated recharge temperature","Hydrogen sulfide","Ammonia","Ammonium","Total nitrogen","Total Kjeldahl nitrogen","Dissolved organic carbon","Total organic carbon","delta C13 of dissolved inorganic carbon"],"title":"parameter_name"},"parameter_type":{"type":"string","enum":["Field Parameter","Metal","Radionuclide","Major Element","Minor Element","Physical property"],"title":"parameter_type"},"permission_type":{"type":"string","enum":["Water Level Sample","Water Chemistry Sample","Datalogger Installation"],"title":"permission_type"},"phone_type":{"type":"string","enum":["Primary","Work","Home","Mobile"],"title":"phone_type"},"publication_type":{"type":"string","enum":["Map","Report","Dataset","Model","Software","Paper","Thesis","Book","Conference","Webpage"],"title":"publication_type"},"qc_type":{"type":"string","enum":["Normal","Duplicate","Split","Field Blank","Trip Blank","Equipment Blank"],"title":"qc_type"},"release_status":{"type":"string","enum":["draft","provisional","final","published","archived","public","private"],"title":"release_status"},"review_status":{"type":"string","enum":["approved","not reviewed"],"title":"review_status"},"role":{"type":"string","enum":["Unknown","Principal Investigator","Owner","Manager","Operator","Driller","Geologist","Hydrologist","Hydrogeologist","Engineer","Organization","Specialist","Technician","Research Assistant","Research Scientist","Graduate Student","Biologist","Lab Manager","Publications Manager","Software Developer"],"title":"role"},"sample_matrix":{"type":"string","enum":["water","groundwater","soil"],"title":"sample_matrix"},"sample_method":{"type":"string","enum":["Unknown","Airline measurement","Analog or graphic recorder","Calibrated airline measurement","Differential GPS; especially applicable to surface expression of ground water","Estimated","Transducer","Pressure-gage measurement","Calibrated pressure-gage measurement","Interpreted from geophysical logs","Manometer","Non-recording gage","Observed (required for F, N, and W water level status)","Sonic water level meter (acoustic pulse)","Reported, method not known","Steel-tape measurement","Electric tape measurement (E-probe)","Unknown (for legacy data only; not for new data entry)","Calibrated electric tape; accuracy of equipment has been checked","Calibrated electric cable","Uncalibrated electric cable","Continuous acoustic sounder","Measurement not attempted","null placeholder","bailer","faucet at well head","faucet or outlet at house","grab sample","pump","thief sampler"],"title":"sample_method"},"schemas__location__GeoJSONGeometry":{"properties":{"type":{"type":"string","title":"Type","default":"Point"},"coordinates":{"items":{},"type":"array","maxItems":3,"minItems":3,"title":"Coordinates","description":"Coordinates in [longitude, latitude, elevation] format"}},"type":"object","required":["coordinates"],"title":"GeoJSONGeometry"},"schemas__thing__GeoJSONGeometry":{"properties":{"type":{"type":"string","title":"Type"},"coordinates":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"items":{"items":{"type":"number"},"type":"array"},"type":"array"},{"items":{"items":{"items":{"type":"number"},"type":"array"},"type":"array"},"type":"array"},{"items":{"items":{"items":{"items":{"type":"number"},"type":"array"},"type":"array"},"type":"array"},"type":"array"}],"title":"Coordinates"}},"type":"object","required":["type","coordinates"],"title":"GeoJSONGeometry","description":"Geometry schema for GeoJSON response."},"screen_type":{"type":"string","enum":["PVC","Steel","Concrete"],"title":"screen_type"},"sensor_type":{"type":"string","enum":["DiverLink","Diver Cable","Pressure Transducer","Data Logger","Barometer","Acoustic Sounder","Precip Collector","Camera","Soil Moisture Sensor","Tipping Bucket","Weather Station","Weir","Snow Lysimeter","Lysimeter"],"title":"sensor_type"},"spring_type":{"type":"string","enum":["Artesian","Ephemeral","Perennial","Thermal","Mineral"],"title":"spring_type"},"unit":{"type":"string","enum":["dimensionless","ft","ftbgs","F","mg/L","mW/m²","W/m²","W/m·K","m²/s","deg C","deg second","deg minute","second","minute","hour","m"],"title":"unit"},"well_construction_method":{"type":"string","enum":["Unknown","Air-Rotary","Bored or augered","Cable-tool","Hydraulic rotary (mud or water)","Air percussion","Reverse rotary","Driven","Other (explain in notes)"],"title":"well_construction_method"},"well_pump_type":{"type":"string","enum":["Submersible","Jet","Line Shaft","Hand","Windmill"],"title":"well_pump_type"},"well_purpose":{"type":"string","enum":["Unknown","Open, unequipped well","Commercial","Domestic","Power generation","Irrigation","Livestock","Mining","Industrial","Observation","Public supply","Shared domestic","Institutional","Unused","Exploration","Monitoring","Production","Injection"],"title":"well_purpose"}},"securitySchemes":{"OAuth2AuthorizationCodeBearer":{"type":"oauth2","flows":{"authorizationCode":{"scopes":{"openid":"openid","offline_access":"offline_access"},"authorizationUrl":"https://authentik.newmexicowaterdata.org/application/o/authorize/","tokenUrl":"https://authentik.newmexicowaterdata.org/application/o/token/"}}}}}} \ No newline at end of file +{"openapi":"3.1.0","info":{"title":"Ocotillo API (Full)","description":"Full API schema (authorized users)","version":"1.2.0"},"paths":{"/health":{"get":{"tags":["meta"],"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/asset/upload":{"post":{"tags":["asset"],"summary":"Upload Asset","operationId":"upload_asset_asset_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_asset_asset_upload_post"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Upload Asset Asset Upload Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/asset/upload-and-record":{"post":{"tags":["asset"],"summary":"Upload And Record Asset","description":"Upload a digital asset to GCS and record it in the database in one step.\n\nAccepts a multipart/form-data request containing the file and optional\nmetadata. Validates the file type and size before uploading. If the same\nfile has already been uploaded for the same Thing, the existing record is\nreturned instead of creating a duplicate.\n\nArgs:\n user: Authenticated admin user performing the upload.\n session: Active database session.\n bucket: GCS storage bucket resolved via dependency injection.\n file: The file to upload. Accepted MIME types: JPEG, PNG, GIF, WebP,\n TIFF (images); PDF (documents); plain text. Max size: 250 MB.\n thing_id: ID of the Thing (e.g. a well) this asset belongs to.\n label: Optional human-readable label for the asset.\n name: Optional asset name. Defaults to the uploaded filename.\n\nReturns:\n AssetResponse: The newly created (or pre-existing duplicate) asset\n record, including its database ID, GCS URI, and storage path.\n\nRaises:\n 400 Bad Request: File MIME type is not in the allowed set, or the\n file size exceeds 250 MB.\n 409 Conflict: No Thing with the given thing_id exists.","operationId":"upload_and_record_asset_asset_upload_and_record_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_and_record_asset_asset_upload_and_record_post"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/asset":{"post":{"tags":["asset"],"summary":"Add Asset","operationId":"add_asset_asset_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAsset"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["asset"],"summary":"List Assets","description":"List all assets or assets associated with a specific thing.","operationId":"list_assets_asset_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"query","required":false,"schema":{"type":"integer","title":"Thing Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_AssetResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/asset/unassociated":{"get":{"tags":["asset"],"summary":"List Unassociated Assets","description":"List assets that are not associated with any Thing.","operationId":"list_unassociated_assets_asset_unassociated_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_AssetResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/asset/{asset_id}":{"get":{"tags":["asset"],"summary":"Get Asset","description":"Retrieve an asset by its ID.","operationId":"get_asset_asset__asset_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"integer","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["asset"],"summary":"Update Asset","description":"Update an existing asset.","operationId":"update_asset_asset__asset_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"integer","title":"Asset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAsset"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["asset"],"summary":"Delete Asset","operationId":"delete_asset_asset__asset_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"integer","title":"Asset Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/asset/{asset_id}/association":{"patch":{"tags":["asset"],"summary":"Update Asset Thing Association","description":"Move an asset to another Thing or remove its Thing association.\n\nPassing a `thing_id` replaces any existing Thing links for the asset with\nthat one Thing. Passing `thing_id: null` leaves the Asset record in place\nand removes all Thing links.","operationId":"update_asset_thing_association_asset__asset_id__association_patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"integer","title":"Asset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetAssociationUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetAssociationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/asset/{asset_id}/remove":{"delete":{"tags":["asset"],"summary":"Remove Asset","operationId":"remove_asset_asset__asset_id__remove_delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"integer","title":"Asset Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/author/{author_id}/publications":{"get":{"tags":["author"],"summary":"Get Author Publications","description":"Retrieve all publications for a specific author.","operationId":"get_author_publications_author__author_id__publications_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"author_id","in":"path","required":true,"schema":{"type":"integer","title":"Author Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicationResponse"},"title":"Response Get Author Publications Author Author Id Publications Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact":{"post":{"tags":["contact"],"summary":"Create a new contact","operationId":"create_contact_contact_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateContact"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["contact"],"summary":"Get contacts","description":"Paginated contacts.\n\n**Filtering.** ``filter_params`` collects every ``filter=`` query parameter.\nRefine sends one JSON object per active DataGrid column (AND semantics).\nVirtual field ``things`` filters by linked monitoring site ``Thing.name``.\nSee docs/refine-json-filters-and-virtual-fields.md and ``get_db_contacts``.","operationId":"get_contacts_contact_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"sort","in":"query","required":false,"schema":{"type":"string","title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Filter"}},{"name":"thing_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thing Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_ContactResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact/address":{"post":{"tags":["contact"],"summary":"Add an address to a contact","description":"Add a new address to an existing contact in the database.\n:param contact_id: ID of the contact to add the address to\n:param address_data: Data for the new address\n:param session: Database session\n:return: Response containing the added address","operationId":"create_address_contact_address_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAddress"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["contact"],"summary":"Get all addresses","description":"Retrieve all addresses from the database.\n:param session:\n:return:","operationId":"get_addresses_contact_address_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_AddressResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact/email":{"post":{"tags":["contact"],"summary":"Add an email to a contact","operationId":"create_email_contact_email_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmail"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["contact"],"summary":"Get all emails","description":"Retrieve all emails from the database.\n:param session:\n:return:","operationId":"get_emails_contact_email_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_EmailResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact/phone":{"post":{"tags":["contact"],"summary":"Add a phone number to a contact","operationId":"create_phone_contact_phone_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePhone"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhoneResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["contact"],"summary":"Get all phones","description":"Retrieve all phone numbers from the database.\n:param session:\n:return:","operationId":"get_phones_contact_phone_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_PhoneResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact/email/{email_id}":{"patch":{"tags":["contact"],"summary":"Update Contact Email","description":"Update an existing contact's email in the database.","operationId":"update_contact_email_contact_email__email_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"email_id","in":"path","required":true,"schema":{"type":"integer","title":"Email Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmail"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["contact"],"summary":"Get email by ID","description":"Retrieve an email by ID from the database.","operationId":"get_email_by_id_contact_email__email_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"email_id","in":"path","required":true,"schema":{"type":"integer","title":"Email Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["contact"],"summary":"Delete contact email","description":"Delete a contact email by ID from the database.","operationId":"delete_contact_email_contact_email__email_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"email_id","in":"path","required":true,"schema":{"type":"integer","title":"Email Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact/phone/{phone_id}":{"patch":{"tags":["contact"],"summary":"Update Contact Phone","description":"Update an existing contact's phone number in the database.\n:param contact_id: ID of the contact to update\n:param phone_type: Type of the phone to update\n:param phone_number: New phone number\n:param session: Database session\n:return: Updated contact response","operationId":"update_contact_phone_contact_phone__phone_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"phone_id","in":"path","required":true,"schema":{"type":"integer","title":"Phone Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePhone"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhoneResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["contact"],"summary":"Get phone by ID","description":"Retrieve a phone by ID from the database.","operationId":"get_phone_by_id_contact_phone__phone_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"phone_id","in":"path","required":true,"schema":{"type":"integer","title":"Phone Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhoneResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["contact"],"summary":"Delete contact phone","description":"Delete a contact phone by ID from the database.","operationId":"delete_contact_phone_contact_phone__phone_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"phone_id","in":"path","required":true,"schema":{"type":"integer","title":"Phone Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact/address/{address_id}":{"patch":{"tags":["contact"],"summary":"Update Contact Address","description":"Update an existing contact's address in the database.\n\n:param address_id:\n:param address_data:\n:param session:\n:return:","operationId":"update_contact_address_contact_address__address_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"address_id","in":"path","required":true,"schema":{"type":"integer","title":"Address Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAddress"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["contact"],"summary":"Get address by ID","description":"Retrieve an address by ID from the database.","operationId":"get_address_by_id_contact_address__address_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"address_id","in":"path","required":true,"schema":{"type":"integer","title":"Address Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["contact"],"summary":"Delete contact address","description":"Delete a contact address by ID from the database.","operationId":"delete_contact_address_contact_address__address_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"address_id","in":"path","required":true,"schema":{"type":"integer","title":"Address Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact/{contact_id}":{"patch":{"tags":["contact"],"summary":"Update contact","description":"Update an existing contact in the database.\n:param contact_id: ID of the contact to update\n:param contact_data: Data to update the contact with\n:param session: Database session\n:return: Updated contact response","operationId":"update_contact_contact__contact_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"integer","title":"Contact Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateContact"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["contact"],"summary":"Get contact by ID","description":"Retrieve a contact by ID from the database.","operationId":"get_contact_by_id_contact__contact_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"integer","title":"Contact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["contact"],"summary":"Delete contact","description":"Delete a contact by ID from the database.","operationId":"delete_contact_contact__contact_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"integer","title":"Contact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact/{contact_id}/email":{"get":{"tags":["contact"],"summary":"Get contact emails","description":"Retrieve all emails associated with a contact.","operationId":"get_contact_emails_contact__contact_id__email_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"integer","title":"Contact Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_EmailResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact/{contact_id}/phone":{"get":{"tags":["contact"],"summary":"Get contact phones","description":"Retrieve all phone numbers associated with a contact.","operationId":"get_contact_phones_contact__contact_id__phone_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"integer","title":"Contact Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_PhoneResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact/{contact_id}/address":{"get":{"tags":["contact"],"summary":"Get contact addresses","description":"Retrieve all addresses associated with a contact.","operationId":"get_contact_addresses_contact__contact_id__address_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"integer","title":"Contact Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_AddressResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/disclaimer":{"get":{"tags":["disclaimer"],"summary":"Data disclaimer and terms of service","operationId":"get_disclaimer_disclaimer_get","parameters":[{"name":"f","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Response format. Use 'json' for the text as data.","title":"F"},"description":"Response format. Use 'json' for the text as data."}],"responses":{"200":{"description":"The disclaimer as HTML (default) or JSON (?f=json).","content":{"text/html":{"schema":{"type":"string"}},"application/json":{}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/geospatial":{"get":{"tags":["geospatial"],"summary":"Get Geospatial","description":"Endpoint to retrieve a GeoJSON FeatureCollection or a shapefile.\nIf the request is for a shapefile, it will return a zip file containing the shapefile.\nOtherwise, it returns a GeoJSON FeatureCollection.","operationId":"get_geospatial_geospatial_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_type","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"title":"thing_type"}},{"name":"group","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"group"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","pattern":"^(geojson|shapefile)$","title":"format","description":"Format of the response. 'geojson' for GeoJSON FeatureCollection, 'shapefile' for a shapefile.","default":"geojson"},"description":"Format of the response. 'geojson' for GeoJSON FeatureCollection, 'shapefile' for a shapefile."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/geospatial/project-area/{group_id}":{"get":{"tags":["geospatial"],"summary":"Get project area for group","operationId":"get_project_area_geospatial_project_area__group_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"integer","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureCollectionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/group":{"post":{"tags":["group"],"summary":"Create a new group","description":"Create a new group in the database.","operationId":"create_group_group_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGroup"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["group"],"summary":"Get groups","description":"Retrieve all groups from the database.","operationId":"get_groups_group_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_GroupResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/group/{group_id}/things/{thing_id}":{"post":{"tags":["group"],"summary":"Add a thing to a group","description":"Associate a thing (e.g. a water well) with a group (project).\nReturns 409 if the association already exists.","operationId":"add_thing_to_group_route_group__group_id__things__thing_id__post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"integer","title":"Group Id"}},{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["group"],"summary":"Remove a thing from a group","description":"Remove the association between a thing and a group.\nReturns 404 if the association does not exist.","operationId":"remove_thing_from_group_route_group__group_id__things__thing_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"integer","title":"Group Id"}},{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/group/{group_id}":{"get":{"tags":["group"],"summary":"Get group by ID","description":"Retrieve a group by ID from the database.","operationId":"get_group_by_id_group__group_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"integer","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["group"],"summary":"Update a group by ID","description":"Update a group by ID in the database.","operationId":"update_group_group__group_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"integer","title":"Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGroup"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["group"],"summary":"Delete a group by ID","operationId":"delete_group_group__group_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"integer","title":"Group Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/lexicon/category":{"post":{"tags":["lexicon"],"summary":"Add Category","description":"Endpoint to add a category to the lexicon.","operationId":"add_category_lexicon_category_post","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLexiconCategory"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LexiconCategoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["lexicon"],"summary":"Get Lexicon Categories","description":"Endpoint to retrieve lexicon categories.","operationId":"get_lexicon_categories_lexicon_category_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":"name","title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_LexiconCategoryResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/lexicon/term":{"post":{"tags":["lexicon"],"summary":"Add term","description":"Endpoint to add a term to the lexicon.","operationId":"add_term_lexicon_term_post","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLexiconTerm"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LexiconTermResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["lexicon"],"summary":"Get lexicon terms","description":"Endpoint to retrieve lexicon terms.","operationId":"get_lexicon_terms_lexicon_term_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"term","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Term"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_LexiconTermResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/lexicon/triple":{"post":{"tags":["lexicon"],"summary":"Add triple","operationId":"add_triple_lexicon_triple_post","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLexiconTriple"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LexiconTripleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["lexicon"],"summary":"Get lexicon triples","description":"Endpoint to retrieve lexicon triples.","operationId":"get_lexicon_triples_lexicon_triple_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":"subject","title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_LexiconTripleResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/lexicon/term/{term_id}":{"patch":{"tags":["lexicon"],"summary":"Update Lexicon Term","operationId":"update_lexicon_term_lexicon_term__term_id__patch","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"term_id","in":"path","required":true,"schema":{"type":"integer","title":"Term Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateLexiconTerm"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LexiconTermResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["lexicon"],"summary":"Get Lexicon Term","operationId":"get_lexicon_term_lexicon_term__term_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"term_id","in":"path","required":true,"schema":{"type":"integer","title":"Term Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LexiconTermResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["lexicon"],"summary":"Delete a lexicon term by ID","operationId":"delete_lexicon_term_lexicon_term__term_id__delete","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"term_id","in":"path","required":true,"schema":{"type":"integer","title":"Term Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/lexicon/category/{category_id}":{"patch":{"tags":["lexicon"],"summary":"Update Lexicon Category","operationId":"update_lexicon_category_lexicon_category__category_id__patch","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"category_id","in":"path","required":true,"schema":{"type":"integer","title":"Category Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateLexiconCategory"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LexiconCategoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["lexicon"],"summary":"Get Lexicon Category","operationId":"get_lexicon_category_lexicon_category__category_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"category_id","in":"path","required":true,"schema":{"type":"integer","title":"Category Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LexiconCategoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["lexicon"],"summary":"Delete a lexicon category by ID","operationId":"delete_lexicon_category_lexicon_category__category_id__delete","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"category_id","in":"path","required":true,"schema":{"type":"integer","title":"Category Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/lexicon/triple/{triple_id}":{"patch":{"tags":["lexicon"],"summary":"Update Lexicon Triple","operationId":"update_lexicon_triple_lexicon_triple__triple_id__patch","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"triple_id","in":"path","required":true,"schema":{"type":"integer","title":"Triple Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateLexiconTriple"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LexiconTripleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["lexicon"],"summary":"Get Lexicon Triple","operationId":"get_lexicon_triple_lexicon_triple__triple_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"triple_id","in":"path","required":true,"schema":{"type":"integer","title":"Triple Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LexiconTripleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["lexicon"],"summary":"Delete a lexicon triple by ID","operationId":"delete_lexicon_triple_lexicon_triple__triple_id__delete","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"triple_id","in":"path","required":true,"schema":{"type":"integer","title":"Triple Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/location":{"post":{"tags":["location"],"summary":"Create a new sample location","description":"Create a new sample location in the database.","operationId":"create_location_location_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLocation"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["location"],"summary":"Get all locations","description":"Retrieve all wells from the database.","operationId":"get_location_location_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"nearby_point","in":"query","required":false,"schema":{"type":"string","title":"Nearby Point"}},{"name":"nearby_distance_km","in":"query","required":false,"schema":{"type":"number","default":1,"title":"Nearby Distance Km"}},{"name":"within","in":"query","required":false,"schema":{"type":"string","title":"Within"}},{"name":"query","in":"query","required":false,"schema":{"type":"string","title":"Query"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_LocationResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/location/{location_id}":{"patch":{"tags":["location"],"summary":"Update a location","description":"Update a sample location in the database.","operationId":"update_location_location__location_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"location_id","in":"path","required":true,"schema":{"type":"integer","title":"Location Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateLocation"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["location"],"summary":"Get location by ID","description":"Retrieve a sample location by ID from the database.","operationId":"get_location_by_id_location__location_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"location_id","in":"path","required":true,"schema":{"type":"integer","title":"Location Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["location"],"summary":"Delete location by ID","description":"Delete a sample location by ID from the database.","operationId":"delete_location_location__location_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"location_id","in":"path","required":true,"schema":{"type":"integer","title":"Location Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/observation/groundwater-level":{"post":{"tags":["observation"],"summary":"Add Groundwater Level Observation","description":"Add a new groundwater observation to the database.","operationId":"add_groundwater_level_observation_observation_groundwater_level_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGroundwaterLevelObservation"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroundwaterLevelObservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["observation"],"summary":"Get groundwater level observations","description":"Retrieve all groundwater level observations from the database.","operationId":"get_groundwater_level_observations_observation_groundwater_level_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thing Id"}},{"name":"sensor_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sensor Id"}},{"name":"sample_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sample Id"}},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Time"}},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Time"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_GroundwaterLevelObservationResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/observation/water-chemistry":{"post":{"tags":["observation"],"summary":"Add Water Chemistry Observation","description":"Add a new water chemistry observation to the database.\nThis endpoint is currently a placeholder and does not implement any functionality.","operationId":"add_water_chemistry_observation_observation_water_chemistry_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWaterChemistryObservation"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaterChemistryObservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["observation"],"summary":"Get water chemistry observations","description":"Retrieve all water chemistry observations from the database.","operationId":"get_water_chemistry_observations_observation_water_chemistry_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thing Id"}},{"name":"sensor_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sensor Id"}},{"name":"sample_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sample Id"}},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Time"}},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Time"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_WaterChemistryObservationResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/observation/groundwater-level/bulk-upload":{"post":{"tags":["observation"],"summary":"Bulk Upload Groundwater Levels","operationId":"bulk_upload_groundwater_levels_observation_groundwater_level_bulk_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_bulk_upload_groundwater_levels_observation_groundwater_level_bulk_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaterLevelBulkUploadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/observation/groundwater-level/{observation_id}":{"patch":{"tags":["observation"],"summary":"Update Groundwater Level Observation","description":"Update an existing groundwater level observation in the database.","operationId":"update_groundwater_level_observation_observation_groundwater_level__observation_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"observation_id","in":"path","required":true,"schema":{"type":"integer","title":"Observation Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGroundwaterLevelObservation"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroundwaterLevelObservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["observation"],"summary":"Get groundwater level observation by ID","operationId":"get_groundwater_level_observation_by_id_observation_groundwater_level__observation_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"observation_id","in":"path","required":true,"schema":{"type":"integer","title":"Observation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroundwaterLevelObservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/observation/water-chemistry/{observation_id}":{"patch":{"tags":["observation"],"summary":"Update Water Chemistry Observation","description":"Update an existing water chemistry observation in the database.","operationId":"update_water_chemistry_observation_observation_water_chemistry__observation_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"observation_id","in":"path","required":true,"schema":{"type":"integer","title":"Observation Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWaterChemistryObservation"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaterChemistryObservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["observation"],"summary":"Get water chemistry observation by ID","operationId":"get_water_chemistry_observation_by_id_observation_water_chemistry__observation_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"observation_id","in":"path","required":true,"schema":{"type":"integer","title":"Observation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaterChemistryObservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/observation/transducer-groundwater-level":{"get":{"tags":["observation"],"summary":"Get transducer groundwater level observations","operationId":"get_transducer_groundwater_level_observations_observation_transducer_groundwater_level_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thing Id"}},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Time"}},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Time"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_TransducerObservationWithBlockResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/observation":{"get":{"tags":["observation"],"summary":"Get all observations","operationId":"get_all_observations_observation_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thing Id"}},{"name":"sensor_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sensor Id"}},{"name":"sample_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sample Id"}},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Time"}},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Time"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_ObservationResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/observation/{observation_id}":{"get":{"tags":["observation"],"summary":"Get an observation by its ID","operationId":"get_observation_by_id_observation__observation_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"observation_id","in":"path","required":true,"schema":{"type":"integer","title":"Observation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["observation"],"summary":"Delete an observation","operationId":"delete_observation_observation__observation_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"observation_id","in":"path","required":true,"schema":{"type":"integer","title":"Observation Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/publication/add":{"post":{"tags":["publication"],"summary":"Post Publication","description":"Add a new publication.","operationId":"post_publication_publication_add_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePublication"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/sample":{"post":{"tags":["sample"],"summary":"Add Sample","description":"Endpoint to add a sample.","operationId":"add_sample_sample_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSample"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SampleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["sample"],"summary":"Get Samples","description":"Endpoint to retrieve samples.","operationId":"get_samples_sample_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thing Id"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_SampleResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sample/{sample_id}":{"patch":{"tags":["sample"],"summary":"Update Sample","description":"Endpoint to update a sample.","operationId":"update_sample_sample__sample_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"sample_id","in":"path","required":true,"schema":{"type":"integer","title":"Sample Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSample"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SampleResponse"},{"$ref":"#/components/schemas/ResourceNotFoundResponse"}],"title":"Response Update Sample Sample Sample Id Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["sample"],"summary":"Get Sample by ID","description":"Endpoint to retrieve a sample by its ID.","operationId":"get_sample_by_id_sample__sample_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"sample_id","in":"path","required":true,"schema":{"type":"integer","title":"Sample Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SampleResponse"},{"$ref":"#/components/schemas/ResourceNotFoundResponse"}],"title":"Response Get Sample By Id Sample Sample Id Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["sample"],"summary":"Delete Sample by ID","operationId":"delete_sample_by_id_sample__sample_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"sample_id","in":"path","required":true,"schema":{"type":"integer","title":"Sample Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sensor":{"post":{"tags":["sensor"],"summary":"Add Sensor","description":"Add a sensor to the system.","operationId":"add_sensor_sensor_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSensor"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SensorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["sensor"],"summary":"Get Sensors","description":"Retrieve all sensors from the system.\nThis endpoint is a placeholder and should be implemented with actual logic.","operationId":"get_sensors_sensor_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"query","required":false,"schema":{"type":"integer","title":"Thing Id"}},{"name":"parameter_id","in":"query","required":false,"schema":{"type":"integer","title":"Parameter Id"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_SensorResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sensor/{sensor_id}":{"patch":{"tags":["sensor"],"summary":"Update Sensor","description":"Update a sensor in the system.","operationId":"update_sensor_sensor__sensor_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"sensor_id","in":"path","required":true,"schema":{"type":"integer","title":"Sensor Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSensor"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SensorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["sensor"],"summary":"Delete Sensor","description":"Delete a sensor in the system","operationId":"delete_sensor_sensor__sensor_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"sensor_id","in":"path","required":true,"schema":{"type":"integer","title":"Sensor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["sensor"],"summary":"Get Sensor","description":"Retrieve a sensor by its ID.","operationId":"get_sensor_sensor__sensor_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"sensor_id","in":"path","required":true,"schema":{"type":"integer","title":"Sensor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SensorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/search":{"get":{"tags":["search"],"summary":"Search Api","description":"Search endpoint for the collaborative network.","operationId":"search_api_search_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","title":"Q"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":25,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_dict_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/geothermal-well":{"get":{"tags":["geothermal"],"summary":"Get all geothermal wells","description":"List geothermal wells.\n\nNOTE: sourced from the legacy NM_Wells mirror (NMW_WellHeaders where\nGthrmExist is set). Will be re-pointed at the thing table post-transform.\n\n``q`` is what the UI well picker uses: the catalogue is far too large to\nchoose from by scrolling, so the term is matched server-side and the total\nreported by the pagination envelope is the size of the match set.","operationId":"get_geothermal_wells_thing_geothermal_well_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"county","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"County"}},{"name":"name_contains","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Contains"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Free-text search across well name, API, well number, operator and county. Whitespace-separated words are ANDed, so each word added narrows the result. Case-insensitive substring match.","title":"Q"},"description":"Free-text search across well name, API, well number, operator and county. Whitespace-separated words are ANDed, so each word added narrows the result. Case-insensitive substring match."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_GeothermalWellResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/geothermal-well/{well_data_id}":{"get":{"tags":["geothermal"],"summary":"Get geothermal well by legacy WellDataID","description":"Get a single geothermal well by its legacy NMW WellDataID (GUID).\n\nNOTE: keyed by the legacy GUID because these rows are not yet in the thing\ntable. Post-transform this becomes an integer thing_id lookup.","operationId":"get_geothermal_well_thing_geothermal_well__well_data_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"well_data_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Well Data Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeothermalWellResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/water-well":{"get":{"tags":["thing"],"summary":"Get all water wells","description":"Retrieve all wells from the database.","operationId":"get_water_wells_thing_water_well_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Filter"}},{"name":"query","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query"}},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},{"name":"name_contains","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Contains"}},{"name":"include_contacts","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Contacts"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_WellResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["thing"],"summary":"Create a water well","description":"Create a new water well in the database.","operationId":"create_well_thing_water_well_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWell"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WellResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/water-well/{thing_id}":{"get":{"tags":["thing"],"summary":"Get water well by ID","description":"Retrieve a water well by ID from the database.","operationId":"get_well_by_id_thing_water_well__thing_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WellResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["thing"],"summary":"Update well by parent thing ID","description":"Update an existing well by ID.","operationId":"update_water_well_thing_water_well__thing_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWell"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WellResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/water-well/{thing_id}/details":{"get":{"tags":["thing"],"summary":"Get water well details payload","description":"Retrieve the consolidated payload needed to render the well details page.\nHydrograph series and map layer loading are intentionally handled separately.","operationId":"get_well_details_thing_water_well__thing_id__details_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}},{"name":"field_event_limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Field Event Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WellDetailsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/water-well/{thing_id}/export":{"get":{"tags":["thing"],"summary":"Get water well export payload","description":"Retrieve the minimal payload needed for field sheet export generation.","operationId":"get_well_export_thing_water_well__thing_id__export_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WellExportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/water-well/{thing_id}/well-screen":{"get":{"tags":["thing"],"summary":"Get well screens by water well ID","description":"Retrieve all well screens for a specific water well by its ID.","operationId":"get_well_screens_by_well_id_thing_water_well__thing_id__well_screen_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_WellScreenResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/well-screen":{"get":{"tags":["thing"],"summary":"Get well screens","description":"Retrieve all well screens from the database.","operationId":"get_well_screens_thing_well_screen_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"query","required":false,"schema":{"type":"integer","title":"Thing Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_WellScreenResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["thing"],"summary":"Create a new well screen","description":"Create a new well screen in the database.","operationId":"create_wellscreen_thing_well_screen_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWellScreen"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WellScreenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/well-screen/{wellscreen_id}":{"get":{"tags":["thing"],"summary":"Get well screen by ID","description":"Retrieve a well screen by ID from the database.","operationId":"get_well_screen_by_id_thing_well_screen__wellscreen_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"wellscreen_id","in":"path","required":true,"schema":{"type":"integer","title":"Wellscreen Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WellScreenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/spring":{"get":{"tags":["thing"],"summary":"Get all springs","description":"Retrieve all springs from the database.","operationId":"get_springs_thing_spring_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"sort","in":"query","required":false,"schema":{"type":"string","title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","title":"Order"}},{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Filter"}},{"name":"query","in":"query","required":false,"schema":{"type":"string","title":"Query"}},{"name":"name_contains","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Contains"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_SpringResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["thing"],"summary":"Create a new spring","description":"Create a new well in the database.","operationId":"create_spring_thing_spring_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSpring"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpringResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/spring/{thing_id}":{"get":{"tags":["thing"],"summary":"Get spring by ID","description":"Retrieve a spring by ID from the database.","operationId":"get_spring_by_id_thing_spring__thing_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpringResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["thing"],"summary":"Update spring by parent thing ID","description":"Update an existing spring by ID.","operationId":"update_spring_thing_spring__thing_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSpring"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpringResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/id-link":{"get":{"tags":["thing"],"summary":"Get all thing links","description":"Retrieve all thing links, optionally filtered and sorted.","operationId":"get_thing_id_links_thing_id_link_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"type":"string","title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","title":"Order"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_ThingIdLinkResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["thing"],"summary":"Create a new thing link","description":"Create a new link between a thing and an alternate ID.","operationId":"create_thing_id_link_thing_id_link_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateThingIdLink"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThingIdLinkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/id-link/{link_id}":{"get":{"tags":["thing"],"summary":"Get thing links by link ID","description":"Retrieve all links for a specific thing by its ID.","operationId":"get_thing_id_links_thing_id_link__link_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"link_id","in":"path","required":true,"schema":{"type":"integer","title":"Link Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThingIdLinkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["thing"],"summary":"Update thing link by ID","operationId":"update_thing_id_link_thing_id_link__link_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"link_id","in":"path","required":true,"schema":{"type":"integer","title":"Link Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateThingIdLink"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThingIdLinkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["thing"],"summary":"Delete thing link by ID","description":"Delete a thing link by ID.","operationId":"delete_thing_id_link_thing_id_link__link_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"link_id","in":"path","required":true,"schema":{"type":"integer","title":"Link Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing":{"get":{"tags":["thing"],"summary":"Get all things","description":"Retrieve all things or filter by type.","operationId":"get_things_thing_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"within","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Within"}},{"name":"query","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order"}},{"name":"include_contacts","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Contacts"}},{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Filter"}},{"name":"name_contains","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Contains"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_ThingResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/{thing_id}":{"get":{"tags":["thing"],"summary":"Get thing by ID","description":"Retrieve a thing by ID from the database.","operationId":"get_thing_by_id_thing__thing_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThingResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["thing"],"summary":"Delete thing by ID","description":"Delete a thing by ID.","operationId":"delete_thing_thing__thing_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/{thing_id}/id-link":{"get":{"tags":["thing"],"summary":"Get thing links by thing ID","description":"Retrieve all links for a specific thing by its ID.","operationId":"get_thing_id_links_thing__thing_id__id_link_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_ThingIdLinkResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/{thing_id}/deployment":{"get":{"tags":["thing"],"summary":"Get deployments by thing ID","description":"Retrieve all deployments for a specific thing by its ID.","operationId":"get_thing_deployments_thing__thing_id__deployment_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"thing_id","in":"path","required":true,"schema":{"type":"integer","title":"Thing Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":25,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_DeploymentResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thing/well-screen/{well_screen_id}":{"patch":{"tags":["thing"],"summary":"Update Well Screen by ID","operationId":"update_well_screen_thing_well_screen__well_screen_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"well_screen_id","in":"path","required":true,"schema":{"type":"integer","title":"Well Screen Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWellScreen"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WellScreenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["thing"],"summary":"Delete well screen by ID","description":"Delete a well screen by ID.","operationId":"delete_well_screen_thing_well_screen__well_screen_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"well_screen_id","in":"path","required":true,"schema":{"type":"integer","title":"Well Screen Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ngwmn/waterlevels/{pointid}":{"get":{"tags":["NGWMN"],"summary":"Get waterlevels for a given pointid in the NGWMN format","operationId":"read_ngwmn_waterlevels_ngwmn_waterlevels__pointid__get","parameters":[{"name":"pointid","in":"path","required":true,"schema":{"type":"string","title":"Pointid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ngwmn/wellconstruction/{pointid}":{"get":{"tags":["NGWMN"],"summary":"Get wellconstruction for a given pointid in the NGWMN format","operationId":"read_ngwmn_wellconstruction_ngwmn_wellconstruction__pointid__get","parameters":[{"name":"pointid","in":"path","required":true,"schema":{"type":"string","title":"Pointid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ngwmn/lithology/{pointid}":{"get":{"tags":["NGWMN"],"summary":"Get lithology for a given pointid in the NGWMN format","operationId":"read_ngwmn_lithology_ngwmn_lithology__pointid__get","parameters":[{"name":"pointid","in":"path","required":true,"schema":{"type":"string","title":"Pointid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/feedback":{"post":{"tags":["feedback"],"summary":"Create Feedback","operationId":"create_feedback_feedback_post","parameters":[{"name":"_user","in":"query","required":false,"schema":{"title":" User"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AddressResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"contact_id":{"type":"integer","title":"Contact Id"},"address_line_1":{"type":"string","title":"Address Line 1"},"address_line_2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Line 2"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"postal_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postal Code"},"country":{"type":"string","title":"Country"},"address_type":{"$ref":"#/components/schemas/address_type"}},"type":"object","required":["id","created_at","release_status","contact_id","address_line_1","country","address_type"],"title":"AddressResponse","description":"Response schema for address details."},"AssetAssociationResponse":{"properties":{"asset_id":{"type":"integer","title":"Asset Id"},"thing_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thing Id"}},"type":"object","required":["asset_id"],"title":"AssetAssociationResponse"},"AssetAssociationUpdate":{"properties":{"thing_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thing Id"}},"type":"object","title":"AssetAssociationUpdate"},"AssetResponse":{"properties":{"name":{"type":"string","title":"Name"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"storage_path":{"type":"string","title":"Storage Path"},"mime_type":{"type":"string","title":"Mime Type"},"size":{"type":"integer","title":"Size"},"uri":{"type":"string","title":"Uri"},"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"storage_service":{"type":"string","title":"Storage Service"},"signed_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signed Url"}},"type":"object","required":["name","storage_path","mime_type","size","uri","id","created_at","release_status","storage_service"],"title":"AssetResponse"},"AuthorResponse":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"affiliation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Affiliation"}},"type":"object","required":["id","name"],"title":"AuthorResponse","description":"Schema for the response of an author."},"Body_bulk_upload_groundwater_levels_observation_groundwater_level_bulk_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_bulk_upload_groundwater_levels_observation_groundwater_level_bulk_upload_post"},"Body_upload_and_record_asset_asset_upload_and_record_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"thing_id":{"type":"integer","title":"Thing Id"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["file","thing_id"],"title":"Body_upload_and_record_asset_asset_upload_and_record_post"},"Body_upload_asset_asset_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_asset_asset_upload_post"},"ContactResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"organization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization"},"role":{"$ref":"#/components/schemas/role"},"contact_type":{"$ref":"#/components/schemas/contact_type"},"incomplete_nma_phones":{"items":{"type":"string"},"type":"array","title":"Incomplete Nma Phones","default":[]},"emails":{"items":{"$ref":"#/components/schemas/EmailResponse"},"type":"array","title":"Emails","default":[]},"phones":{"items":{"$ref":"#/components/schemas/PhoneResponse"},"type":"array","title":"Phones","default":[]},"addresses":{"items":{"$ref":"#/components/schemas/AddressResponse"},"type":"array","title":"Addresses","default":[]},"things":{"items":{"$ref":"#/components/schemas/ThingResponseForContact"},"type":"array","title":"Things","default":[]},"communication_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Communication Notes","default":[]},"general_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"General Notes","default":[]}},"type":"object","required":["id","created_at","release_status","name","organization","role","contact_type"],"title":"ContactResponse","description":"Response schema for contact details."},"CreateAddress":{"properties":{"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"contact_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Contact Id"},"address_line_1":{"type":"string","title":"Address Line 1"},"address_line_2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Line 2"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State","default":"NM"},"postal_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postal Code"},"country":{"type":"string","title":"Country","default":"United States"},"address_type":{"$ref":"#/components/schemas/address_type","default":"Primary"}},"type":"object","required":["address_line_1"],"title":"CreateAddress","description":"Schema for creating an address."},"CreateAsset":{"properties":{"name":{"type":"string","title":"Name"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"storage_path":{"type":"string","title":"Storage Path"},"mime_type":{"type":"string","title":"Mime Type"},"size":{"type":"integer","title":"Size"},"uri":{"type":"string","title":"Uri"},"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"thing_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thing Id"}},"type":"object","required":["name","storage_path","mime_type","size","uri"],"title":"CreateAsset"},"CreateContact":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"organization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization"},"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"thing_id":{"type":"integer","title":"Thing Id"},"role":{"$ref":"#/components/schemas/role"},"contact_type":{"$ref":"#/components/schemas/contact_type"},"nma_pk_owners":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Pk Owners"},"emails":{"anyOf":[{"items":{"$ref":"#/components/schemas/CreateEmail"},"type":"array"},{"type":"null"}],"title":"Emails"},"phones":{"anyOf":[{"items":{"$ref":"#/components/schemas/CreatePhone"},"type":"array"},{"type":"null"}],"title":"Phones"},"addresses":{"anyOf":[{"items":{"$ref":"#/components/schemas/CreateAddress"},"type":"array"},{"type":"null"}],"title":"Addresses"},"notes":{"anyOf":[{"items":{"$ref":"#/components/schemas/CreateNote"},"type":"array"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["thing_id","role","contact_type"],"title":"CreateContact","description":"Schema for creating a contact."},"CreateEmail":{"properties":{"email":{"type":"string","title":"Email"},"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"contact_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Contact Id"},"email_type":{"$ref":"#/components/schemas/email_type","default":"Primary"}},"type":"object","required":["email"],"title":"CreateEmail","description":"Schema for creating an email."},"CreateGroundwaterLevelObservation":{"properties":{"parameter_id":{"type":"integer","title":"Parameter Id"},"observation_datetime":{"type":"string","format":"date-time","title":"Observation Datetime"},"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"sample_id":{"type":"integer","title":"Sample Id"},"sensor_id":{"type":"integer","title":"Sensor Id"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"},"unit":{"anyOf":[{"$ref":"#/components/schemas/unit"},{"type":"null"}]},"measuring_point_height":{"type":"number","title":"Measuring Point Height"},"groundwater_level_reason":{"type":"string","title":"Groundwater Level Reason"}},"type":"object","required":["parameter_id","observation_datetime","sample_id","sensor_id","value","unit","measuring_point_height","groundwater_level_reason"],"title":"CreateGroundwaterLevelObservation"},"CreateGroup":{"properties":{"project_area":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Area"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"parent_group_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent Group Id"},"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"name":{"type":"string","title":"Name"}},"type":"object","required":["name"],"title":"CreateGroup","description":"Schema for creating a group."},"CreateLexiconCategory":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["name"],"title":"CreateLexiconCategory","description":"Pydantic model for creating a lexicon category.\nThis model can be extended to include additional fields as needed."},"CreateLexiconTerm":{"properties":{"term":{"type":"string","title":"Term"},"definition":{"type":"string","title":"Definition"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories"}},"type":"object","required":["term","definition","categories"],"title":"CreateLexiconTerm","description":"Pydantic model for creating a lexicon term.\nThis model can be extended to include additional fields as needed."},"CreateLexiconTriple":{"properties":{"subject":{"$ref":"#/components/schemas/CreateLexiconTerm"},"predicate":{"type":"string","title":"Predicate"},"object_":{"$ref":"#/components/schemas/CreateLexiconTerm"}},"type":"object","required":["subject","predicate","object_"],"title":"CreateLexiconTriple","description":"Pydantic model for creating a triple.\nThis model can be extended to include additional fields as needed."},"CreateLocation":{"properties":{"point":{"type":"string","title":"Point"},"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"notes":{"items":{"$ref":"#/components/schemas/CreateNote"},"type":"array","title":"Notes","default":[]},"elevation":{"type":"number","title":"Elevation"}},"type":"object","required":["point","elevation"],"title":"CreateLocation","description":"Schema for creating a sample location."},"CreateMonitoringFrequency":{"properties":{"monitoring_frequency":{"$ref":"#/components/schemas/monitoring_frequency"},"start_date":{"type":"string","format":"date","title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},"type":"object","required":["monitoring_frequency","start_date"],"title":"CreateMonitoringFrequency"},"CreateNote":{"properties":{"note_type":{"$ref":"#/components/schemas/note_type"},"content":{"type":"string","title":"Content"},"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"}},"type":"object","required":["note_type","content"],"title":"CreateNote","description":"Schema for creating a new Note. The parent object's ID and type will be\ntaken from the URL path, not the request body."},"CreatePhone":{"properties":{"phone_number":{"type":"string","title":"Phone Number"},"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"contact_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Contact Id"},"phone_type":{"$ref":"#/components/schemas/phone_type","default":"Primary"}},"type":"object","required":["phone_number"],"title":"CreatePhone","description":"Schema for creating a phone number."},"CreatePublication":{"properties":{"title":{"type":"string","title":"Title"},"authors":{"items":{"type":"string"},"type":"array","title":"Authors"},"year":{"type":"integer","title":"Year"},"doi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doi"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"publication_type":{"$ref":"#/components/schemas/publication_type"}},"type":"object","required":["title","authors","year","publication_type"],"title":"CreatePublication","description":"Schema for creating a new publication."},"CreateSample":{"properties":{"sample_date":{"type":"string","format":"date-time","title":"Sample Date"},"depth_top":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Depth Top"},"depth_bottom":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Depth Bottom"},"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"field_activity_id":{"type":"integer","title":"Field Activity Id"},"field_event_participant_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Field Event Participant Id"},"sample_name":{"type":"string","title":"Sample Name"},"sample_matrix":{"$ref":"#/components/schemas/sample_matrix"},"sample_method":{"$ref":"#/components/schemas/sample_method"},"qc_type":{"$ref":"#/components/schemas/qc_type"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["sample_date","field_activity_id","sample_name","sample_matrix","sample_method","qc_type"],"title":"CreateSample"},"CreateSensor":{"properties":{"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"name":{"type":"string","title":"Name"},"sensor_type":{"$ref":"#/components/schemas/sensor_type"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"serial_no":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Serial No"},"pcn_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pcn Number"},"owner_agency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Agency"},"sensor_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sensor Status"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["name","sensor_type"],"title":"CreateSensor","description":"Schema for creating a new sensor."},"CreateSpring":{"properties":{"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"location_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Location Id"},"group_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Group Id"},"name":{"type":"string","title":"Name"},"first_visit_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"First Visit Date"},"notes":{"anyOf":[{"items":{"$ref":"#/components/schemas/CreateNote"},"type":"array"},{"type":"null"}],"title":"Notes"},"alternate_ids":{"anyOf":[{"items":{"$ref":"#/components/schemas/CreateThingIdLink"},"type":"array"},{"type":"null"}],"title":"Alternate Ids"},"monitoring_frequencies":{"anyOf":[{"items":{"$ref":"#/components/schemas/CreateMonitoringFrequency"},"type":"array"},{"type":"null"}],"title":"Monitoring Frequencies"},"spring_type":{"anyOf":[{"$ref":"#/components/schemas/spring_type"},{"type":"null"}]}},"type":"object","required":["name"],"title":"CreateSpring","description":"Schema for creating a spring."},"CreateThingIdLink":{"properties":{"thing_id":{"type":"integer","title":"Thing Id"},"relation":{"type":"string","title":"Relation"},"alternate_id":{"type":"string","title":"Alternate Id"},"alternate_organization":{"type":"string","title":"Alternate Organization"}},"type":"object","required":["thing_id","relation","alternate_id","alternate_organization"],"title":"CreateThingIdLink","description":"Schema for creating a link between a thing and its ID."},"CreateWaterChemistryObservation":{"properties":{"parameter_id":{"type":"integer","title":"Parameter Id"},"observation_datetime":{"type":"string","format":"date-time","title":"Observation Datetime"},"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"sample_id":{"type":"integer","title":"Sample Id"},"sensor_id":{"type":"integer","title":"Sensor Id"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"},"unit":{"anyOf":[{"$ref":"#/components/schemas/unit"},{"type":"null"}]}},"type":"object","required":["parameter_id","observation_datetime","sample_id","sensor_id","value","unit"],"title":"CreateWaterChemistryObservation"},"CreateWell":{"properties":{"well_depth":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Well Depth","description":"Well depth in feet"},"hole_depth":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Hole Depth","description":"Hole depth in feet"},"well_casing_depth":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Well Casing Depth","description":"Well casing depth in feet"},"measuring_point_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Measuring Point Height","description":"Measuring point height in feet"},"well_pump_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Pump Depth"},"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"location_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Location Id"},"group_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Group Id"},"name":{"type":"string","title":"Name"},"first_visit_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"First Visit Date"},"notes":{"anyOf":[{"items":{"$ref":"#/components/schemas/CreateNote"},"type":"array"},{"type":"null"}],"title":"Notes"},"alternate_ids":{"anyOf":[{"items":{"$ref":"#/components/schemas/CreateThingIdLink"},"type":"array"},{"type":"null"}],"title":"Alternate Ids"},"monitoring_frequencies":{"anyOf":[{"items":{"$ref":"#/components/schemas/CreateMonitoringFrequency"},"type":"array"},{"type":"null"}],"title":"Monitoring Frequencies"},"well_purposes":{"anyOf":[{"items":{"$ref":"#/components/schemas/well_purpose"},"type":"array"},{"type":"null"}],"title":"Well Purposes"},"well_depth_source":{"anyOf":[{"$ref":"#/components/schemas/origin_type"},{"type":"null"}]},"well_casing_diameter":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Well Casing Diameter","description":"Well casing diameter in inches"},"well_casing_materials":{"anyOf":[{"items":{"$ref":"#/components/schemas/casing_material"},"type":"array"},{"type":"null"}],"title":"Well Casing Materials"},"measuring_point_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Measuring Point Description"},"well_completion_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Well Completion Date"},"well_completion_date_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Completion Date Source"},"well_driller_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Driller Name"},"well_construction_method":{"anyOf":[{"$ref":"#/components/schemas/well_construction_method"},{"type":"null"}]},"well_construction_method_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Construction Method Source"},"well_pump_type":{"anyOf":[{"$ref":"#/components/schemas/well_pump_type"},{"type":"null"}]},"is_suitable_for_datalogger":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Suitable For Datalogger"},"is_open":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Open"},"well_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Status"},"monitoring_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Monitoring Status"},"formation_completion_code":{"anyOf":[{"$ref":"#/components/schemas/formation_code"},{"type":"null"}]},"nma_formation_zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Formation Zone"}},"type":"object","required":["name"],"title":"CreateWell","description":"Schema for creating a well."},"CreateWellScreen":{"properties":{"release_status":{"$ref":"#/components/schemas/release_status","default":"draft"},"thing_id":{"type":"integer","title":"Thing Id"},"aquifer_system_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Aquifer System Id"},"geologic_formation_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Geologic Formation Id"},"screen_depth_bottom":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Screen Depth Bottom","description":"Screen depth bottom in feet"},"screen_depth_top":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Screen Depth Top","description":"Screen depth top in feet"},"screen_type":{"anyOf":[{"$ref":"#/components/schemas/screen_type"},{"type":"null"}]},"screen_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screen Description"}},"type":"object","required":["thing_id"],"title":"CreateWellScreen","description":"Schema for creating a well screen."},"DeploymentResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"thing_id":{"type":"integer","title":"Thing Id"},"sensor":{"$ref":"#/components/schemas/SensorResponse"},"installation_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Installation Date"},"removal_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Removal Date"},"recording_interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Recording Interval"},"recording_interval_units":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recording Interval Units"},"hanging_cable_length":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Hanging Cable Length"},"hanging_point_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Hanging Point Height"},"hanging_point_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hanging Point Description"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["id","created_at","release_status","thing_id","sensor","installation_date","removal_date","recording_interval","recording_interval_units","hanging_cable_length","hanging_point_height","hanging_point_description","notes"],"title":"DeploymentResponse"},"EmailResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"contact_id":{"type":"integer","title":"Contact Id"},"email":{"type":"string","title":"Email"},"email_type":{"$ref":"#/components/schemas/email_type"}},"type":"object","required":["id","created_at","release_status","contact_id","email","email_type"],"title":"EmailResponse","description":"Response schema for email details."},"Feature":{"properties":{"type":{"type":"string","title":"Type","default":"Feature"},"geometry":{"$ref":"#/components/schemas/schemas__thing__GeoJSONGeometry"},"properties":{"additionalProperties":true,"type":"object","title":"Properties","default":{}}},"type":"object","required":["geometry"],"title":"Feature","description":"Feature schema for GeoJSON response."},"FeatureCollectionResponse":{"properties":{"type":{"type":"string","title":"Type","default":"FeatureCollection"},"features":{"items":{"$ref":"#/components/schemas/Feature"},"type":"array","title":"Features","default":[]}},"type":"object","title":"FeatureCollectionResponse","description":"Response schema for GeoJSON FeatureCollection."},"FeedbackCreate":{"properties":{"type":{"type":"string","enum":["bug","feature"],"title":"Type"},"page_url":{"type":"string","title":"Page Url"},"reporter_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reporter Name"},"reporter_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reporter Email"},"browser":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Browser"},"submitted_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Submitted At"},"what_happened":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"What Happened"},"severity":{"type":"string","title":"Severity","default":"Low"},"problem":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Problem"},"who_would_use":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Who Would Use"},"what_it_should_do":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"What It Should Do"}},"type":"object","required":["type","page_url"],"title":"FeedbackCreate"},"FeedbackResponse":{"properties":{"jira_key":{"type":"string","title":"Jira Key"},"jira_url":{"type":"string","title":"Jira Url"}},"type":"object","required":["jira_key","jira_url"],"title":"FeedbackResponse"},"FieldActivityResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"field_event_id":{"type":"integer","title":"Field Event Id"},"activity_type":{"$ref":"#/components/schemas/activity_type"}},"type":"object","required":["id","created_at","release_status","field_event_id","activity_type"],"title":"FieldActivityResponse"},"FieldEventParticipantResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"field_event_id":{"type":"integer","title":"Field Event Id"},"contact_id":{"type":"integer","title":"Contact Id"},"participant_role":{"type":"string","title":"Participant Role"},"participant":{"$ref":"#/components/schemas/ContactResponse"}},"type":"object","required":["id","created_at","release_status","field_event_id","contact_id","participant_role","participant"],"title":"FieldEventParticipantResponse"},"FieldEventResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"thing_id":{"type":"integer","title":"Thing Id"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["id","created_at","release_status","thing_id","event_date","notes"],"title":"FieldEventResponse"},"GeoJSONProperties":{"properties":{"elevation":{"type":"number","title":"Elevation"},"elevation_unit":{"type":"string","title":"Elevation Unit","default":"ft"},"vertical_datum":{"type":"string","title":"Vertical Datum","default":"NAVD88"},"elevation_method":{"anyOf":[{"$ref":"#/components/schemas/elevation_method"},{"type":"null"}]},"county":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"County"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"quad_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quad Name"},"utm_coordinates":{"$ref":"#/components/schemas/GeoJSONUTMCoordinates"},"notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Notes","default":[]},"nma_location_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Location Notes"},"nma_data_reliability":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Data Reliability"},"nma_date_created":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Nma Date Created"},"nma_site_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Nma Site Date"}},"type":"object","required":["elevation","elevation_method"],"title":"GeoJSONProperties"},"GeoJSONUTMCoordinates":{"properties":{"easting":{"type":"number","title":"Easting"},"northing":{"type":"number","title":"Northing"},"utm_zone":{"type":"string","title":"Utm Zone","default":"13N"},"horizontal_datum":{"type":"string","title":"Horizontal Datum","default":"NAD83"}},"type":"object","required":["easting","northing"],"title":"GeoJSONUTMCoordinates"},"GeothermalWellResponse":{"properties":{"well_data_id":{"type":"string","format":"uuid","title":"Well Data Id"},"thing_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thing Id"},"api":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"well_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Number"},"well_class":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Class"},"well_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Type"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"operator":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Operator"},"owner":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner"},"total_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Depth"},"completion_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completion Date"},"has_geothermal_data":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Geothermal Data"},"county":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"County"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Longitude"}},"type":"object","required":["well_data_id"],"title":"GeothermalWellResponse","description":"Read model for a geothermal well sourced from the legacy NM_Wells mirror.\n\nNOTE: This currently reads directly from the ``NMW_WellHeaders`` /\n``NMW_WellLocations`` staging tables (see ``db/nmw_legacy.py``). Once the\nNM_Wells -> Ocotillo transform lands, these rows will be backed by the\n``thing`` table and ``thing_id`` will be populated. Until then ``thing_id``\nis always ``None`` and ``well_data_id`` (legacy GUID) is the identifier."},"GroundwaterLevelObservationResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"sample_id":{"type":"integer","title":"Sample Id"},"sensor_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sensor Id"},"observation_datetime":{"type":"string","title":"Observation Datetime"},"parameter":{"$ref":"#/components/schemas/ParameterResponse"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"},"unit":{"$ref":"#/components/schemas/unit"},"nma_data_quality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Data Quality"},"depth_to_water_bgs":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Depth To Water Bgs"},"measuring_point_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Measuring Point Height"},"groundwater_level_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Groundwater Level Reason"}},"type":"object","required":["id","created_at","release_status","sample_id","sensor_id","observation_datetime","parameter","value","unit","depth_to_water_bgs","measuring_point_height","groundwater_level_reason"],"title":"GroundwaterLevelObservationResponse"},"GroupResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"project_area":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Area"},"group_type":{"anyOf":[{"$ref":"#/components/schemas/group_type"},{"type":"null"}]},"parent_group_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent Group Id"},"well_count":{"type":"integer","title":"Well Count","default":0}},"type":"object","required":["id","created_at","release_status","name","description","project_area","group_type","parent_group_id"],"title":"GroupResponse","description":"Pydantic model for the response of a group.\nThis model can be extended to include additional fields as needed."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"LexiconCategoryResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["id","created_at","name"],"title":"LexiconCategoryResponse","description":"Pydantic model for the response of a lexicon category.\nThis model can be extended to include additional fields as needed."},"LexiconTermResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"term":{"type":"string","title":"Term"},"definition":{"type":"string","title":"Definition"},"categories":{"items":{"$ref":"#/components/schemas/LexiconCategoryResponse"},"type":"array","title":"Categories","default":[]}},"type":"object","required":["id","created_at","term","definition"],"title":"LexiconTermResponse","description":"Pydantic model for the response of a lexicon term.\nThis model can be extended to include additional fields as needed."},"LexiconTripleResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"subject":{"type":"string","title":"Subject"},"predicate":{"type":"string","title":"Predicate"},"object_":{"type":"string","title":"Object"}},"type":"object","required":["id","created_at","subject","predicate","object_"],"title":"LexiconTripleResponse"},"LocationGeoJSONResponse":{"properties":{"type":{"type":"string","title":"Type","default":"Feature"},"release_status":{"$ref":"#/components/schemas/release_status"},"geometry":{"$ref":"#/components/schemas/schemas__location__GeoJSONGeometry"},"properties":{"$ref":"#/components/schemas/GeoJSONProperties"}},"type":"object","required":["release_status","geometry","properties"],"title":"LocationGeoJSONResponse"},"LocationResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Notes","default":[]},"point":{"type":"string","title":"Point"},"elevation":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Elevation"},"horizontal_datum":{"type":"string","title":"Horizontal Datum","default":"WGS84"},"vertical_datum":{"type":"string","title":"Vertical Datum","default":"NAVD88"},"elevation_method":{"anyOf":[{"$ref":"#/components/schemas/elevation_method"},{"type":"null"}]},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"county":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"County"},"quad_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quad Name"},"nma_location_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Location Notes"},"nma_data_reliability":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Data Reliability"},"nma_date_created":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Nma Date Created"},"nma_site_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Nma Site Date"}},"type":"object","required":["id","created_at","release_status","point","elevation","elevation_method","state","county","quad_name"],"title":"LocationResponse","description":"Response schema for sample location details."},"MonitoringFrequencyResponse":{"properties":{"monitoring_frequency":{"$ref":"#/components/schemas/monitoring_frequency"},"start_date":{"type":"string","format":"date","title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},"type":"object","required":["monitoring_frequency","start_date","end_date"],"title":"MonitoringFrequencyResponse"},"NoteResponse":{"properties":{"note_type":{"$ref":"#/components/schemas/note_type"},"content":{"type":"string","title":"Content"},"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"target_id":{"type":"integer","title":"Target Id"},"target_table":{"type":"string","title":"Target Table"}},"type":"object","required":["note_type","content","id","created_at","release_status","target_id","target_table"],"title":"NoteResponse","description":"Response schema for Note details."},"ObservationResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"sample_id":{"type":"integer","title":"Sample Id"},"sensor_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sensor Id"},"observation_datetime":{"type":"string","title":"Observation Datetime"},"parameter":{"$ref":"#/components/schemas/ParameterResponse"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"},"unit":{"$ref":"#/components/schemas/unit"},"nma_data_quality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Data Quality"},"depth_to_water_bgs":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Depth To Water Bgs"},"measuring_point_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Measuring Point Height"},"groundwater_level_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Groundwater Level Reason"}},"type":"object","required":["id","created_at","release_status","sample_id","sensor_id","observation_datetime","parameter","value","unit","depth_to_water_bgs","measuring_point_height","groundwater_level_reason"],"title":"ObservationResponse","description":"Response model for observations.\nCombines groundwater level and geothermal observation responses."},"Page_AddressResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AddressResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[AddressResponse]"},"Page_AssetResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AssetResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[AssetResponse]"},"Page_ContactResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ContactResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[ContactResponse]"},"Page_DeploymentResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/DeploymentResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[DeploymentResponse]"},"Page_EmailResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EmailResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[EmailResponse]"},"Page_GeothermalWellResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/GeothermalWellResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[GeothermalWellResponse]"},"Page_GroundwaterLevelObservationResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/GroundwaterLevelObservationResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[GroundwaterLevelObservationResponse]"},"Page_GroupResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/GroupResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[GroupResponse]"},"Page_LexiconCategoryResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/LexiconCategoryResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[LexiconCategoryResponse]"},"Page_LexiconTermResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/LexiconTermResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[LexiconTermResponse]"},"Page_LexiconTripleResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/LexiconTripleResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[LexiconTripleResponse]"},"Page_LocationResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/LocationResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[LocationResponse]"},"Page_ObservationResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ObservationResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[ObservationResponse]"},"Page_PhoneResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PhoneResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[PhoneResponse]"},"Page_SampleResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SampleResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[SampleResponse]"},"Page_SensorResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SensorResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[SensorResponse]"},"Page_SpringResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SpringResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[SpringResponse]"},"Page_ThingIdLinkResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ThingIdLinkResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[ThingIdLinkResponse]"},"Page_ThingResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ThingResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[ThingResponse]"},"Page_TransducerObservationWithBlockResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TransducerObservationWithBlockResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[TransducerObservationWithBlockResponse]"},"Page_WaterChemistryObservationResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WaterChemistryObservationResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[WaterChemistryObservationResponse]"},"Page_WellResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WellResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[WellResponse]"},"Page_WellScreenResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WellScreenResponse"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[WellScreenResponse]"},"Page_dict_":{"properties":{"items":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"page":{"type":"integer","minimum":1.0,"title":"Page"},"size":{"type":"integer","minimum":1.0,"title":"Size"},"pages":{"type":"integer","minimum":0.0,"title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"Page[dict]"},"ParameterResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"parameter_name":{"$ref":"#/components/schemas/parameter_name"},"matrix":{"type":"string","title":"Matrix"},"parameter_type":{"anyOf":[{"$ref":"#/components/schemas/parameter_type"},{"type":"null"}]},"cas_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cas Number"},"default_unit":{"anyOf":[{"$ref":"#/components/schemas/unit"},{"type":"null"}]}},"type":"object","required":["id","created_at","release_status","parameter_name","matrix","parameter_type","cas_number","default_unit"],"title":"ParameterResponse","description":"Pydantic model for the response of a parameter.\nThis model can be extended to include additional fields as needed."},"PermissionHistoryResponse":{"properties":{"permission_type":{"$ref":"#/components/schemas/permission_type"},"permission_allowed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Permission Allowed"},"start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},"type":"object","required":["permission_type","permission_allowed","start_date","end_date"],"title":"PermissionHistoryResponse","description":"Even though permission_allowed and start_date are not-nullable in the\ndatabase, they are nullable here to accommodate cases where no permission\nrecord exists for a given permission type."},"PhoneResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"contact_id":{"type":"integer","title":"Contact Id"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"phone_type":{"type":"string","title":"Phone Type"}},"type":"object","required":["id","created_at","release_status","contact_id","phone_type"],"title":"PhoneResponse","description":"Response schema for phone details."},"PublicationResponse":{"properties":{"id":{"type":"integer","title":"Id"},"title":{"type":"string","title":"Title"},"authors":{"items":{"$ref":"#/components/schemas/AuthorResponse"},"type":"array","title":"Authors"},"year":{"type":"integer","title":"Year"},"doi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doi"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"publication_type":{"$ref":"#/components/schemas/publication_type"}},"type":"object","required":["id","title","authors","year","publication_type"],"title":"PublicationResponse","description":"Schema for the response of a publication."},"ResourceNotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"ResourceNotFoundResponse"},"SampleResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"thing":{"$ref":"#/components/schemas/ThingResponse"},"field_event":{"$ref":"#/components/schemas/FieldEventResponse"},"field_activity":{"$ref":"#/components/schemas/FieldActivityResponse"},"contact":{"anyOf":[{"$ref":"#/components/schemas/ContactResponse"},{"type":"null"}]},"sample_date":{"type":"string","title":"Sample Date"},"sample_name":{"type":"string","title":"Sample Name"},"sample_matrix":{"$ref":"#/components/schemas/sample_matrix"},"sample_method":{"$ref":"#/components/schemas/sample_method"},"qc_type":{"$ref":"#/components/schemas/qc_type"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"depth_top":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Depth Top"},"depth_bottom":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Depth Bottom"}},"type":"object","required":["id","created_at","release_status","thing","field_event","field_activity","contact","sample_date","sample_name","sample_matrix","sample_method","qc_type","notes","depth_top","depth_bottom"],"title":"SampleResponse","description":"Developer's note\n\nThe frontend uses multiple fields for a thing, field_even, and field_activity,\nwhich is why full ThingResponse, FieldEventResponse, and FieldActivityResponse\nare returned. If the response becomes too large and slow, we can use\n.model_dump() and exlude fields to reduce the size."},"SensorResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"name":{"type":"string","title":"Name"},"sensor_type":{"$ref":"#/components/schemas/sensor_type"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"serial_no":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Serial No"},"pcn_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pcn Number"},"owner_agency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Agency"},"sensor_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sensor Status"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["id","created_at","release_status","name","sensor_type","model","serial_no","pcn_number","owner_agency","sensor_status","notes"],"title":"SensorResponse"},"SpringResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"name":{"type":"string","title":"Name"},"site_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Site Name"},"thing_type":{"type":"string","title":"Thing Type"},"current_location":{"$ref":"#/components/schemas/LocationGeoJSONResponse"},"first_visit_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"First Visit Date"},"groups":{"items":{"$ref":"#/components/schemas/GroupResponse"},"type":"array","title":"Groups","default":[]},"monitoring_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Monitoring Status"},"alternate_ids":{"items":{"$ref":"#/components/schemas/ThingIdLinkResponse"},"type":"array","title":"Alternate Ids","default":[]},"monitoring_frequencies":{"items":{"$ref":"#/components/schemas/MonitoringFrequencyResponse"},"type":"array","title":"Monitoring Frequencies","default":[]},"general_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"General Notes","default":[]},"sampling_procedure_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Sampling Procedure Notes","default":[]},"site_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Site Notes","default":[]},"spring_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Spring Type"}},"type":"object","required":["id","created_at","release_status","name","thing_type","current_location","first_visit_date","monitoring_status"],"title":"SpringResponse","description":"Response schema for spring details."},"ThingIdLinkResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"thing_id":{"type":"integer","title":"Thing Id"},"relation":{"type":"string","title":"Relation"},"alternate_id":{"type":"string","title":"Alternate Id"},"alternate_organization":{"$ref":"#/components/schemas/organization"}},"type":"object","required":["id","created_at","release_status","thing_id","relation","alternate_id","alternate_organization"],"title":"ThingIdLinkResponse"},"ThingResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"name":{"type":"string","title":"Name"},"site_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Site Name"},"thing_type":{"type":"string","title":"Thing Type"},"current_location":{"$ref":"#/components/schemas/LocationGeoJSONResponse"},"first_visit_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"First Visit Date"},"groups":{"items":{"$ref":"#/components/schemas/GroupResponse"},"type":"array","title":"Groups","default":[]},"monitoring_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Monitoring Status"},"alternate_ids":{"items":{"$ref":"#/components/schemas/ThingIdLinkResponse"},"type":"array","title":"Alternate Ids","default":[]},"monitoring_frequencies":{"items":{"$ref":"#/components/schemas/MonitoringFrequencyResponse"},"type":"array","title":"Monitoring Frequencies","default":[]},"general_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"General Notes","default":[]},"sampling_procedure_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Sampling Procedure Notes","default":[]},"site_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Site Notes","default":[]},"spring_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Spring Type"},"well_purposes":{"items":{"$ref":"#/components/schemas/well_purpose"},"type":"array","title":"Well Purposes","default":[]},"well_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Depth"},"well_depth_unit":{"type":"string","title":"Well Depth Unit","default":"ft"},"well_depth_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Depth Source"},"historic_depth_to_water":{"items":{"type":"string"},"type":"array","title":"Historic Depth To Water","default":[]},"hole_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Hole Depth"},"hole_depth_unit":{"type":"string","title":"Hole Depth Unit","default":"ft"},"well_casing_diameter":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Casing Diameter"},"well_casing_diameter_unit":{"type":"string","title":"Well Casing Diameter Unit","default":"in"},"well_casing_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Casing Depth"},"well_casing_depth_unit":{"type":"string","title":"Well Casing Depth Unit","default":"ft"},"well_casing_materials":{"items":{"$ref":"#/components/schemas/casing_material"},"type":"array","title":"Well Casing Materials","default":[]},"well_completion_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Well Completion Date"},"well_completion_date_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Completion Date Source"},"well_driller_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Driller Name"},"well_construction_method":{"anyOf":[{"$ref":"#/components/schemas/well_construction_method"},{"type":"null"}]},"well_construction_method_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Construction Method Source"},"well_pump_type":{"anyOf":[{"$ref":"#/components/schemas/well_pump_type"},{"type":"null"}]},"well_pump_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Pump Depth"},"well_pump_depth_unit":{"type":"string","title":"Well Pump Depth Unit","default":"ft"},"well_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Status"},"open_status":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Open Status"},"datalogger_suitability_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Datalogger Suitability Status"},"measuring_point_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Measuring Point Height"},"measuring_point_height_unit":{"type":"string","title":"Measuring Point Height Unit","default":"ft"},"measuring_point_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Measuring Point Description"},"aquifers":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Aquifers","default":[]},"water_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Water Notes","default":[]},"construction_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Construction Notes","default":[]},"contacts":{"items":{"$ref":"#/components/schemas/WellContactSummaryResponse"},"type":"array","title":"Contacts","default":[]},"permissions":{"items":{"$ref":"#/components/schemas/PermissionHistoryResponse"},"type":"array","title":"Permissions"},"formation_completion_code":{"anyOf":[{"$ref":"#/components/schemas/formation_code"},{"type":"null"}]},"nma_formation_zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Formation Zone"},"well_location_note":{"items":{"type":"string"},"type":"array","title":"Well Location Note","default":[]}},"type":"object","required":["id","created_at","release_status","name","thing_type","current_location","first_visit_date","monitoring_status","well_depth_source","well_completion_date","well_completion_date_source","well_driller_name","well_construction_method","well_construction_method_source","well_pump_type","well_pump_depth","well_status","open_status","datalogger_suitability_status","measuring_point_height","measuring_point_description","permissions","formation_completion_code","nma_formation_zone"],"title":"ThingResponse"},"ThingResponseForContact":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"name":{"type":"string","title":"Name"}},"type":"object","required":["id","created_at","release_status","name"],"title":"ThingResponseForContact","description":"Response schema for thing details related to a contact. All that is needed\nare the id and name"},"TransducerObservationBlockResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"review_status":{"$ref":"#/components/schemas/review_status"},"start_datetime":{"type":"string","format":"date-time","title":"Start Datetime"},"end_datetime":{"type":"string","format":"date-time","title":"End Datetime"},"parameter_id":{"type":"integer","title":"Parameter Id"}},"type":"object","required":["id","created_at","release_status","review_status","start_datetime","end_datetime","parameter_id"],"title":"TransducerObservationBlockResponse"},"TransducerObservationResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"value":{"type":"number","title":"Value"},"observation_datetime":{"type":"string","format":"date-time","title":"Observation Datetime"},"parameter_id":{"type":"integer","title":"Parameter Id"},"deployment_id":{"type":"integer","title":"Deployment Id"}},"type":"object","required":["id","created_at","release_status","value","observation_datetime","parameter_id","deployment_id"],"title":"TransducerObservationResponse"},"TransducerObservationWithBlockResponse":{"properties":{"observation":{"$ref":"#/components/schemas/TransducerObservationResponse"},"block":{"$ref":"#/components/schemas/TransducerObservationBlockResponse"}},"type":"object","required":["observation","block"],"title":"TransducerObservationWithBlockResponse"},"UpdateAddress":{"properties":{"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"contact_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Contact Id"},"address_line_1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Line 1"},"address_line_2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Line 2"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"postal_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postal Code"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"address_type":{"anyOf":[{"$ref":"#/components/schemas/address_type"},{"type":"null"}]}},"type":"object","title":"UpdateAddress","description":"Schema for updating address information."},"UpdateAsset":{"properties":{"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}},"type":"object","title":"UpdateAsset"},"UpdateContact":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"organization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization"},"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"role":{"anyOf":[{"$ref":"#/components/schemas/role"},{"type":"null"}]},"contact_type":{"anyOf":[{"$ref":"#/components/schemas/contact_type"},{"type":"null"}]},"thing_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thing Id"}},"type":"object","title":"UpdateContact","description":"Schema for updating contact information."},"UpdateEmail":{"properties":{"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"contact_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Contact Id"},"email_type":{"anyOf":[{"$ref":"#/components/schemas/email_type"},{"type":"null"}]}},"type":"object","title":"UpdateEmail","description":"Schema for updating email information."},"UpdateGroundwaterLevelObservation":{"properties":{"parameter_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parameter Id"},"observation_datetime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Observation Datetime"},"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"sample_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sample Id"},"sensor_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sensor Id"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"},"unit":{"anyOf":[{"$ref":"#/components/schemas/unit"},{"type":"null"}]},"measuring_point_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Measuring Point Height"},"groundwater_level_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Groundwater Level Reason"}},"type":"object","title":"UpdateGroundwaterLevelObservation"},"UpdateGroup":{"properties":{"project_area":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Area"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"parent_group_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent Group Id"},"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","title":"UpdateGroup","description":"Pydantic model for updating a group.\nThis model can be extended to include additional fields as needed."},"UpdateLexiconCategory":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","title":"UpdateLexiconCategory"},"UpdateLexiconTerm":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Term"},"definition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Definition"}},"type":"object","title":"UpdateLexiconTerm"},"UpdateLexiconTriple":{"properties":{"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"},"predicate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Predicate"},"object_":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object"}},"type":"object","title":"UpdateLexiconTriple"},"UpdateLocation":{"properties":{"point":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Point"},"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"notes":{"items":{"$ref":"#/components/schemas/UpdateNote"},"type":"array","title":"Notes","default":[]},"elevation":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Elevation"},"elevation_accuracy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Elevation Accuracy"},"elevation_method":{"anyOf":[{"$ref":"#/components/schemas/elevation_method"},{"type":"null"}]},"coordinate_accuracy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Coordinate Accuracy"},"coordinate_method":{"anyOf":[{"$ref":"#/components/schemas/coordinate_method"},{"type":"null"}]}},"type":"object","title":"UpdateLocation","description":"Schema for updating a location. Notes are managed via the polymorphic Notes table."},"UpdateNote":{"properties":{"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"note_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note Type"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"}},"type":"object","title":"UpdateNote","description":"Schema for updating an existing Note. All fields are optional"},"UpdatePhone":{"properties":{"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"contact_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Contact Id"},"phone_type":{"anyOf":[{"$ref":"#/components/schemas/phone_type"},{"type":"null"}]}},"type":"object","title":"UpdatePhone","description":"Schema for updating phone information."},"UpdateSample":{"properties":{"sample_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Sample Date"},"depth_top":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Depth Top"},"depth_bottom":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Depth Bottom"},"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"field_activity_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Field Activity Id"},"field_event_participant_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Field Event Participant Id"},"sample_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sample Name"},"sample_matrix":{"anyOf":[{"$ref":"#/components/schemas/sample_matrix"},{"type":"null"}]},"sample_method":{"anyOf":[{"$ref":"#/components/schemas/sample_method"},{"type":"null"}]},"qc_type":{"anyOf":[{"$ref":"#/components/schemas/qc_type"},{"type":"null"}]},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","title":"UpdateSample"},"UpdateSensor":{"properties":{"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"sensor_type":{"anyOf":[{"$ref":"#/components/schemas/sensor_type"},{"type":"null"}]},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"serial_no":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Serial No"},"pcn_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pcn Number"},"owner_agency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Agency"},"sensor_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sensor Status"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","title":"UpdateSensor"},"UpdateSpring":{"properties":{"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"first_visit_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"First Visit Date"},"spring_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Spring Type"}},"type":"object","title":"UpdateSpring"},"UpdateThingIdLink":{"properties":{"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"alternate_organization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alternate Organization"},"alternate_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alternate Id"},"relation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relation"}},"type":"object","title":"UpdateThingIdLink"},"UpdateWaterChemistryObservation":{"properties":{"parameter_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parameter Id"},"observation_datetime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Observation Datetime"},"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"sample_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sample Id"},"sensor_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sensor Id"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"},"unit":{"anyOf":[{"$ref":"#/components/schemas/unit"},{"type":"null"}]}},"type":"object","title":"UpdateWaterChemistryObservation"},"UpdateWell":{"properties":{"well_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Depth"},"hole_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Hole Depth"},"well_casing_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Casing Depth"},"measuring_point_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Measuring Point Height"},"well_pump_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Pump Depth"},"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"first_visit_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"First Visit Date"},"well_purposes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Well Purposes"},"well_construction_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Construction Notes"},"well_casing_diameter":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Casing Diameter"},"well_casing_materials":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Well Casing Materials"},"nma_formation_zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Formation Zone"}},"type":"object","title":"UpdateWell"},"UpdateWellScreen":{"properties":{"release_status":{"anyOf":[{"$ref":"#/components/schemas/release_status"},{"type":"null"}]},"aquifer_system_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Aquifer System Id"},"geologic_formation_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Geologic Formation Id"},"screen_depth_bottom":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Screen Depth Bottom"},"screen_depth_top":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Screen Depth Top"},"screen_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screen Description"},"screen_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screen Type"}},"type":"object","title":"UpdateWellScreen"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WaterChemistryObservationResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"sample_id":{"type":"integer","title":"Sample Id"},"sensor_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sensor Id"},"observation_datetime":{"type":"string","title":"Observation Datetime"},"parameter":{"$ref":"#/components/schemas/ParameterResponse"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"},"unit":{"$ref":"#/components/schemas/unit"},"nma_data_quality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Data Quality"}},"type":"object","required":["id","created_at","release_status","sample_id","sensor_id","observation_datetime","parameter","value","unit"],"title":"WaterChemistryObservationResponse"},"WaterLevelBulkUploadResponse":{"properties":{"summary":{"$ref":"#/components/schemas/WaterLevelBulkUploadSummary"},"water_levels":{"items":{"$ref":"#/components/schemas/WaterLevelBulkUploadRow"},"type":"array","title":"Water Levels"},"validation_errors":{"items":{"type":"string"},"type":"array","title":"Validation Errors"}},"type":"object","required":["summary","water_levels","validation_errors"],"title":"WaterLevelBulkUploadResponse"},"WaterLevelBulkUploadRow":{"properties":{"well_name_point_id":{"type":"string","title":"Well Name Point Id"},"field_event_id":{"type":"integer","title":"Field Event Id"},"field_activity_id":{"type":"integer","title":"Field Activity Id"},"sample_id":{"type":"integer","title":"Sample Id"},"observation_id":{"type":"integer","title":"Observation Id"},"measurement_date_time":{"type":"string","title":"Measurement Date Time"},"level_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Level Status"},"data_quality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Quality"}},"type":"object","required":["well_name_point_id","field_event_id","field_activity_id","sample_id","observation_id","measurement_date_time","level_status","data_quality"],"title":"WaterLevelBulkUploadRow"},"WaterLevelBulkUploadSummary":{"properties":{"total_rows_processed":{"type":"integer","title":"Total Rows Processed"},"total_rows_imported":{"type":"integer","title":"Total Rows Imported"},"validation_errors_or_warnings":{"type":"integer","title":"Validation Errors Or Warnings"}},"type":"object","required":["total_rows_processed","total_rows_imported","validation_errors_or_warnings"],"title":"WaterLevelBulkUploadSummary"},"WellContactSummaryResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"organization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization"},"role":{"$ref":"#/components/schemas/role"},"contact_type":{"$ref":"#/components/schemas/contact_type"}},"type":"object","required":["id","created_at","release_status","role","contact_type"],"title":"WellContactSummaryResponse"},"WellDetailsFieldActivityResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"field_event_id":{"type":"integer","title":"Field Event Id"},"activity_type":{"$ref":"#/components/schemas/activity_type"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"samples":{"items":{"$ref":"#/components/schemas/WellDetailsFieldEventSampleResponse"},"type":"array","title":"Samples"}},"type":"object","required":["id","created_at","release_status","field_event_id","activity_type"],"title":"WellDetailsFieldActivityResponse"},"WellDetailsFieldEventResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"thing_id":{"type":"integer","title":"Thing Id"},"event_date":{"type":"string","title":"Event Date"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"field_event_participants":{"items":{"$ref":"#/components/schemas/FieldEventParticipantResponse"},"type":"array","title":"Field Event Participants"},"field_activities":{"items":{"$ref":"#/components/schemas/WellDetailsFieldActivityResponse"},"type":"array","title":"Field Activities"}},"type":"object","required":["id","created_at","release_status","thing_id","event_date"],"title":"WellDetailsFieldEventResponse"},"WellDetailsFieldEventSampleResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"contact":{"anyOf":[{"$ref":"#/components/schemas/ContactResponse"},{"type":"null"}]},"sample_date":{"type":"string","title":"Sample Date"},"sample_name":{"type":"string","title":"Sample Name"},"sample_matrix":{"$ref":"#/components/schemas/sample_matrix"},"sample_method":{"$ref":"#/components/schemas/sample_method"},"qc_type":{"$ref":"#/components/schemas/qc_type"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"depth_top":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Depth Top"},"depth_bottom":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Depth Bottom"},"observations":{"items":{"$ref":"#/components/schemas/ObservationResponse"},"type":"array","title":"Observations"}},"type":"object","required":["id","created_at","release_status","sample_date","sample_name","sample_matrix","sample_method","qc_type"],"title":"WellDetailsFieldEventSampleResponse"},"WellDetailsResponse":{"properties":{"well":{"$ref":"#/components/schemas/WellResponse"},"contacts":{"items":{"$ref":"#/components/schemas/ContactResponse"},"type":"array","title":"Contacts"},"sensors":{"items":{"$ref":"#/components/schemas/SensorResponse"},"type":"array","title":"Sensors"},"deployments":{"items":{"$ref":"#/components/schemas/DeploymentResponse"},"type":"array","title":"Deployments"},"well_screens":{"items":{"$ref":"#/components/schemas/WellScreenBaseResponse"},"type":"array","title":"Well Screens"},"field_events":{"items":{"$ref":"#/components/schemas/WellDetailsFieldEventResponse"},"type":"array","title":"Field Events"},"first_field_event":{"anyOf":[{"$ref":"#/components/schemas/WellDetailsFieldEventResponse"},{"type":"null"}]}},"type":"object","required":["well"],"title":"WellDetailsResponse"},"WellExportResponse":{"properties":{"well":{"$ref":"#/components/schemas/WellResponse"},"contacts":{"items":{"$ref":"#/components/schemas/ContactResponse"},"type":"array","title":"Contacts"},"sensors":{"items":{"$ref":"#/components/schemas/SensorResponse"},"type":"array","title":"Sensors"},"deployments":{"items":{"$ref":"#/components/schemas/DeploymentResponse"},"type":"array","title":"Deployments"}},"type":"object","required":["well"],"title":"WellExportResponse"},"WellResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"name":{"type":"string","title":"Name"},"site_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Site Name"},"thing_type":{"type":"string","title":"Thing Type"},"current_location":{"$ref":"#/components/schemas/LocationGeoJSONResponse"},"first_visit_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"First Visit Date"},"groups":{"items":{"$ref":"#/components/schemas/GroupResponse"},"type":"array","title":"Groups","default":[]},"monitoring_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Monitoring Status"},"alternate_ids":{"items":{"$ref":"#/components/schemas/ThingIdLinkResponse"},"type":"array","title":"Alternate Ids","default":[]},"monitoring_frequencies":{"items":{"$ref":"#/components/schemas/MonitoringFrequencyResponse"},"type":"array","title":"Monitoring Frequencies","default":[]},"general_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"General Notes","default":[]},"sampling_procedure_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Sampling Procedure Notes","default":[]},"site_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Site Notes","default":[]},"well_purposes":{"items":{"$ref":"#/components/schemas/well_purpose"},"type":"array","title":"Well Purposes","default":[]},"well_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Depth"},"well_depth_unit":{"type":"string","title":"Well Depth Unit","default":"ft"},"well_depth_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Depth Source"},"historic_depth_to_water":{"items":{"type":"string"},"type":"array","title":"Historic Depth To Water","default":[]},"hole_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Hole Depth"},"hole_depth_unit":{"type":"string","title":"Hole Depth Unit","default":"ft"},"well_casing_diameter":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Casing Diameter"},"well_casing_diameter_unit":{"type":"string","title":"Well Casing Diameter Unit","default":"in"},"well_casing_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Casing Depth"},"well_casing_depth_unit":{"type":"string","title":"Well Casing Depth Unit","default":"ft"},"well_casing_materials":{"items":{"$ref":"#/components/schemas/casing_material"},"type":"array","title":"Well Casing Materials","default":[]},"well_completion_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Well Completion Date"},"well_completion_date_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Completion Date Source"},"well_driller_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Driller Name"},"well_construction_method":{"anyOf":[{"$ref":"#/components/schemas/well_construction_method"},{"type":"null"}]},"well_construction_method_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Construction Method Source"},"well_pump_type":{"anyOf":[{"$ref":"#/components/schemas/well_pump_type"},{"type":"null"}]},"well_pump_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Well Pump Depth"},"well_pump_depth_unit":{"type":"string","title":"Well Pump Depth Unit","default":"ft"},"well_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Well Status"},"open_status":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Open Status"},"datalogger_suitability_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Datalogger Suitability Status"},"measuring_point_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Measuring Point Height"},"measuring_point_height_unit":{"type":"string","title":"Measuring Point Height Unit","default":"ft"},"measuring_point_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Measuring Point Description"},"aquifers":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Aquifers","default":[]},"water_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Water Notes","default":[]},"construction_notes":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Construction Notes","default":[]},"contacts":{"items":{"$ref":"#/components/schemas/WellContactSummaryResponse"},"type":"array","title":"Contacts","default":[]},"permissions":{"items":{"$ref":"#/components/schemas/PermissionHistoryResponse"},"type":"array","title":"Permissions"},"formation_completion_code":{"anyOf":[{"$ref":"#/components/schemas/formation_code"},{"type":"null"}]},"nma_formation_zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nma Formation Zone"},"well_location_note":{"items":{"type":"string"},"type":"array","title":"Well Location Note","default":[]}},"type":"object","required":["id","created_at","release_status","name","thing_type","current_location","first_visit_date","monitoring_status","well_depth_source","well_completion_date","well_completion_date_source","well_driller_name","well_construction_method","well_construction_method_source","well_pump_type","well_pump_depth","well_status","open_status","datalogger_suitability_status","measuring_point_height","measuring_point_description","permissions","formation_completion_code","nma_formation_zone"],"title":"WellResponse","description":"Response schema for well details."},"WellScreenBaseResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"thing_id":{"type":"integer","title":"Thing Id"},"aquifer_system_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Aquifer System Id"},"aquifer_system":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aquifer System"},"aquifer_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aquifer Type"},"geologic_formation_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Geologic Formation Id"},"geologic_formation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Geologic Formation"},"screen_depth_bottom":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Screen Depth Bottom"},"screen_depth_bottom_unit":{"type":"string","title":"Screen Depth Bottom Unit","default":"ft"},"screen_depth_top":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Screen Depth Top"},"screen_depth_top_unit":{"type":"string","title":"Screen Depth Top Unit","default":"ft"},"screen_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screen Type"},"screen_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screen Description"}},"type":"object","required":["id","created_at","release_status","thing_id"],"title":"WellScreenBaseResponse"},"WellScreenResponse":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","title":"Created At"},"release_status":{"$ref":"#/components/schemas/release_status"},"thing_id":{"type":"integer","title":"Thing Id"},"aquifer_system_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Aquifer System Id"},"aquifer_system":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aquifer System"},"aquifer_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aquifer Type"},"geologic_formation_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Geologic Formation Id"},"geologic_formation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Geologic Formation"},"screen_depth_bottom":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Screen Depth Bottom"},"screen_depth_bottom_unit":{"type":"string","title":"Screen Depth Bottom Unit","default":"ft"},"screen_depth_top":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Screen Depth Top"},"screen_depth_top_unit":{"type":"string","title":"Screen Depth Top Unit","default":"ft"},"screen_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screen Type"},"screen_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screen Description"},"thing":{"$ref":"#/components/schemas/WellResponse"}},"type":"object","required":["id","created_at","release_status","thing_id","thing"],"title":"WellScreenResponse","description":"Response schema for well screen details."},"activity_type":{"type":"string","enum":["well inventory","groundwater level","water chemistry"],"title":"activity_type"},"address_type":{"type":"string","enum":["Primary","Work","Personal","Mailing","Physical"],"title":"address_type"},"casing_material":{"type":"string","enum":["PVC","Steel","Concrete"],"title":"casing_material"},"contact_type":{"type":"string","enum":["Primary","Secondary","Field Event Participant"],"title":"contact_type"},"coordinate_method":{"type":"string","enum":["Unknown","Differentially corrected GPS","Survey-grade global positioning system (SGPS)","GPS, uncorrected","Interpolated from map","Interpolated from DEM","Reported","Transit, theodolite, or other survey method"],"title":"coordinate_method"},"elevation_method":{"type":"string","enum":["Altimeter","Differentially corrected GPS","Survey-grade GPS","Global positioning system (GPS)","LiDAR DEM","Level or other survey method","Interpolated from topographic map","Interpolated from digital elevation model (DEM)","Reported","Survey-grade Global Navigation Satellite Sys, Lvl1","USGS National Elevation Dataset (NED)","Unknown"],"title":"elevation_method"},"email_type":{"type":"string","enum":["Primary","Work","Personal"],"title":"email_type"},"formation_code":{"type":"string","enum":["000EXRV","000IRSV","050QUAL","100QBAS","110ALVM","110AVMB","110BLSN","110NTGU","110PTODC","111MCCR","112ANCH","112CURB","112LAMA","112LAMAb","112LGUN","112QTBF","112QTBFlac","112QTBFpd","112QTBFppm","112SNTF","112SNTFA","112SNTFOB","112SNTFP","112TRTO","120DTIL","120ELRT","120IRSV","120SBLC","120SRVB","120SRVBf","120TSBV_Lower","120TSBV_Upper","121CHMT","121CHMTv","121CHMTvs","121OGLL","121PUYEF","121TSUQ","121TSUQa","121TSUQacu","121TSUQacuf","121TSUQaml","121TSUQb","121TSUQbfl","121TSUQbfm","121TSUQbp","121TSUQce","121TSUQe","121TSUQs","121TSUQsa","121TSUQsc","121TSUQsf","122CHOC","122CRTO","122OJOC","122PICR","122PPTS","122SNTFP","123DTILSPRS","123DTMGandbas","123DTMGign","123DTMGrhydac","123ESPN","123GLST","123PICS","123PICSc","123PICSl","123SPRSDTMGlava","123SPRSlower","123SPRSmid_uppe","124BACA","124CBMN","124LLVS","124PSCN","124RGIN","124SNJS","124TPCS","125NCMN","125NCMNS","125RTON","130CALDFLOOR","180TKSCC_Upper","180TKTR","210CRCS","210GLUPC_Lower","210HOSTD","210MCDK","210MNCS","210MNCSL","210MNCSU","211CLFHV","211CRLL","211CRVC","211DKOT","211DLCO","211DLTN","211FRHS","211FRLD","211FRMG","211GBSNC","211GLLG","211GLLP","211GRRG","211GRRS","211HOST","211KRLD","211LWIS","211MENF","211MENFU","211MVRD","211OJAM","211PCCF","211PIRR","211PNLK","211SMKH","211TLLS","212KTRP","217PRGR","220ENRD","220JURC","220NAVJ","221BLFF","221CSPG","221ERADU","221MRSN","221MRSN/BBSN","221MRSN/JCKP","221MRSN/RCAP","221MRSN/WWCN","221SLWS","221SMVL","221TDLT","221WSRC","221ZUNIS","231AGZC","231AGZCU","231CHNL","231CORR","231DCKM","231PFDF","231PFDFL","231PFDFM","231PFDFU","231RCKP","231SNRS","231SNSL","231SRMP","231WNGT","260SNAN","260SNAN_lower","261SNGL","300YESO","300YESO_lower","300YESO_upper","310ABO","310DCLL","310GLOR","310MBLC","310TRRS","310YESO","310YESOG","312CSTL","312RSLR","313ARTS","313BLCN","313BRUC","313CKBF","313CLBD","313CPTN","313GDLP","313GOSP","313SADG","313SADR","313TNSL","313YATS","315LABR","315YESOABO","318ABO","318BSPG","318JOYT","318YESO","319BRSM","320HLDR","320PENN","320SNDI","321SGDC","322BEMN","325GBLR","325MDER","325MDERL","325MDERU","325SAND","326MGDL","340EPRS","350PZBA","350PZBB","400EMBD","400PCMB","400PREC","400PRECintr","400PRST","400TUSS","410PRCG","410PRCGf","410PRCQ","410PRCQf","121GILA","312DYLK","120WMVL","313GRBG","318ABOL","318ABOU","112SNTFU","310FRNR","312OCHO","313AZOT","313QUEN","319HUCO","313SVRV","313CABD","320GRMS","211CLRDH","120BRLM","122RUBO","313SADRL","313SADRU","313BRNL","318CPDR","121BDHC","313SADY","221SRFLL","221BLUF","221COSP","317ABYS","221BRSB","310SYDR","400SDVL","221SRFL","310SGRC","231TCVS","211DCRS","211ALSN","211LVNN","211MORD","210PRMD","124ANMS","211NBRR","111ALVM","122SNTFL","111CPLN","120CRSN","111CRMS","111CRMSA","111SPOL","110TURT","221RCPR","320BLNG","112ANCHsr","121TSUQae","230TRSC","122TSUQdx","123PICSu","123PICSm","123PICSmc","120VBVC","120VCSS","124DMDT","325ALMT","400SAND","318VCPK","318BSVP","100ALVM","310PRMN","110AVPS","313CRCX","112SLBL","112SBCRC","313CRDM","112SBDM","120BLSN","112SBCR","112HCBL","120IVIG","112RLBL","112EFBL","112GRBL","123SAND","210MRNH","320ALMT","313DLRM","300PLZC","122SPRS","110AVTV","313DMBS","120ERSV"],"title":"formation_code"},"group_type":{"type":"string","enum":["Monitoring Plan","Geographic Area","Historical"],"title":"group_type"},"monitoring_frequency":{"type":"string","enum":["Monthly","Bimonthly","Bimonthly reported","Quarterly","Biannual","Annual","Decadal","Event-based"],"title":"monitoring_frequency"},"note_type":{"type":"string","enum":["Access","Directions","Communication","Construction","Maintenance","Historical","General","Water","Water Quality","Sampling Procedure","Coordinate","OwnerComment","Site Notes (legacy)"],"title":"note_type"},"organization":{"type":"string","enum":["Unknown","City of Aztec","Daybreak Investments","Vallecitos HOA","SFC, Santa Fe Animal Shelter","El Guicu Ditch Association","Santa Fe Municipal Airport","Uluru Development","AllSup's Convenience Stores","Santa Fe Downs Resort","City of Truth or Consequences, WWTP","Riverbend Hotsprings","Armendaris Ranch","El Paso Water","BLM, Socorro Field Office","USFWS","Sile MDWCA","Pena Blanca Water & Sanitation District","Town of Questa","Town of Cerro","Cerro MDWCA","Farr Cattle Company","Carrizozo Orchard","White Oaks Pottery","USFS, Kiowa Grasslands","Cloud Country West Subdivision","Chama West WUA","El Rito Regional Water and Waste Water Association","El Rito MDWCA","West Rim MDWUA","Village of Willard","Quemado Municipal Water & SWA","Coyote Creek MDWUA","Lamy MDWCA","La Joya CWDA","NM Firefighters Training Academy","Cebolleta Land Grant","Madrid Water Co-op","Sun Valley Water and Sanitation","Bluewater Lake MDWCA","Bluewater Acres Domestic WUA","Lybrook MDWCA","New Mexico Museum of Natural History","Hillsboro MDWCA","Tyrone MDWCA","Santa Clara Water System","Casas Adobes MDWCA","Lake Roberts WUA","El Creston MDWCA","Reserve Municipality Water Works","Town of Estancia","Pie Town MDWCA","Roosevelt SWCD","Otis MDWCA","White Cliffs MDWUA","Vista Linda Water Co-op","Anasazi Trails Water Co-op","Canon MDWCA","Placitas Trails Water Co-op","BLM, Roswell Office","Forked Lightning Ranch","Cottonwood RWA","Pinon Ridge WUA","McSherry Farms","Agua Sana WUA","Chamita MDWCA","W Spear-bar Ranch","Village of Capitan","Brazos MDWCA","Alto Alps HOA","Chiricahua Desert Museum","Bike Ranch","Hachita MDWCA","Carrizozo Municipal Water","Dunhill Ranch","Santa Fe Conservation Trust","NMSU","USGS","TWDB","NMED","NMOSE","NMBGMR","Bernalillo County","BLM","BLM Taos Office","SFC","SFC, Fire Facilities","SFC, Utilities Dept.","SFC, Valle Vista Water Utility, Inc.","City of Santa Fe","City of Santa Fe WWTP","City of Santa Fe, Municipal Recreation Complex","City of Santa Fe, Sangre de Cristo Water Co.","NMISC","PVACD","Bayard","SNL","USFS","NMT","NPS","NMRWA","NMDOT","Taos SWCD","Otero SWCD","Northeastern SWCD","CDWR","Pendaries Village","A&T Pump & Well Service, LLC","A. G. Wassenaar, Inc","AMEC","Balleau Groundwater, Inc","CDM Smith","CH2M Hill","Corbin Consulting, Inc","Chevron","Daniel B. Stephens & Associates, Inc","EnecoTech","Faith Engineering, Inc","Foster Well Service, Inc","Glorieta Geoscience, Inc","Golder Associates, Inc","Hathorn's Well Service, Inc","Hydroscience Associates, Inc","IC Tech, Inc","John Shomaker & Associates, Inc","Kuckleman Pump Service","Los Golondrinas","Minton Engineers","MJDarrconsult, Inc","Puerta del Canon Ranch","Rodgers & Company, Inc","San Pedro Creek Estates HOA","Statewide Drilling, Inc","Tec Drilling Limited","Tetra Tech, Inc","Thompson Drilling, Inc","Witcher & Associates","Zeigler Geologic Consulting, LLC","Sandia Well Service, Inc","San Marcos Association","URS","Vista del Oro","Abeyta Engineering, Inc","Adobe Ranch","Agua Fria Community Water Association","Apache Gap Ranch","Aspendale Mountain Retreat","Augustin Plains Ranch LLC","B & B Cattle Co","Berridge Distributing Company","Bishop's Lodge","Bonanza Creek Ranch","Bug Scuffle Water Association","Wehinahpay Mountain Camp","Campbell Ranch","Capitol Ford Santa Fe","Cemex, Inc","Cerro Community Center","Santa Fe Jewish Center","Chupadero MDWCA","Cielo Lumbre HOA","Circle Cross Ranch","City of Alamogordo","City of Portales, Public Works Dept.","City of Socorro","Commonwealth Conservancy","Costilla MDWCA","Country Club Garden Mobile Home Park","Crossroads Cattle Co., Ltd","Double H Ranch","E.A. Meadows East","El Camino Realty, Inc","Eldorado Area Water & Sanitation District","Bourbon Grill at El Gancho","El Prado HOA","El Rancho de las Golondrinas","El Rito Canyon MDWCA","Encantado Enterprises","Estrella Concepts LLC","Sixteen Springs Fire Department","Fire Water Lodge","Ford County Land & Cattle Company, Inc","Friendly Construction, Inc","Hacienda Del Cerezo","Hefker Vega Ranch","High Nogal Ranch","Holloman Air Force Base","Hyde Park Estates MDWCA","Desert Village RV & Mobile Home Park","K. Schmitt Trust","La Cienega MDWCA","La Vista HOA","Land Ventures LLC","Las Lagunitas","Las Lagunitas HOA","Lightning Dock Zanskar","Living World Ministries","Los Atrevidos, Inc","Los Prados HOA","Malaga MDWCA & SWA","Mangas Outfitters","Medina Gravel Pit","Mendenhall Trading Co","Mesa Verde Ranch","NMDGF","NMSU College of Agriculture","Naiche Development","NRAO","NMSA","Nogal MDWCA","O Bar O Ranch","OMI Wastewater Treatment Plant","Old Road Ranch Pardners Ltd","PNM Service Center","Peace Tabernacle Church","Pecos Trail Inn","Pelican Spa","Pistachio Tree Ranch","Rancho Encantado","Rancho San Lucas","Rancho San Marcos","Rancho Viejo Partnership","Ranney Ranch","Rio En Medio MDWCA","San Acacia MDWCA","San Juan Residences","Sangre de Cristo Estates","Santa Fe Community College","Sangre de Cristo Center","Santa Fe Horse Park","Santa Fe Opera","Santa Fe Waldorf School","Shidoni Foundry and Gallery","Sierra Grande Lodge","Sierra Vista Retirement Community","Slash Triangle Ranch","Spanish Stirrup Rockshop","Sparrowhawk Farm","Stagecoach Motel","State of New Mexico","Stephenson Ranch","Sun Broadcasting Network","Tano Rd LLC","UNM-Taos","Tee Pee Ranch/Tee Pee Subdivision","Tent Rock, Inc","Tesuque MDWCA","The Great Cloud Zen Center","Three Rivers Ranch","Timberon Water and Sanitation District","Town of Magdalena","Town of Taos","Town of Taos, National Guard Armory","Trinity Ranch","Tularosa Basin National Desalination Research Facility","Turquoise Trail Charter School","US Bureau of Indian Affairs, Santa Fe Indian School","USFS, Carson NF, Taos Office","USFS, Cibola NF, Magdalena Ranger District","USFS, Cibola NF, Supervisor's Office","USFS, Santa Fe NF, Espanola Ranger District","Ute Mountain Farms","VA Hospital","Velte","Vereda Serena Property","Village of Corona","Village of Floyd","Village of Melrose","Village of Vaughn","Vista Land Company","Vista Redonda MDWCA","Vista de Oro de Placitas Water Users Coop","Walker Ranch","Wild & Woolley Trailer Ranch","Winter Brothers","Yates Petroleum Corporation","Zamora Accounting Services","Agua Sana MWCD","Canada Los Alamos MDWCA","Canjilon Mutual Domestic Water System","Cebolla Mutual Domestic","Chihuahuan Desert Rangeland Research Center (CDRRC)","East Rio Arriba SWCD","El Prado Municipal Water","Hachita Mutual Domestic","Jornada Experimental Range (JER)","La Canada Way HOA","Los Ojos Mutual Domestic","The Nature Conservancy (TNC)","Smith Ranch LLC","Santa Ana Pueblo Department of Natural Resources","Village of Hope","WSP","Zia Pueblo","Our Lady of Guadalupe (OLG)","PLSS"],"title":"organization"},"origin_type":{"type":"string","enum":["Reported by another agency","From driller's log or well report","Private geologist, consultant or univ associate","Interpreted fr geophys logs by source agency","Memory of owner, operator, driller","Measured by source agency","Reported by owner of well","Reported by person other than driller owner agency","Measured by NMBGMR staff","Other","Data Portal"],"title":"origin_type"},"parameter_name":{"type":"string","enum":["groundwater level","temperature","pH","Alkalinity, Total","Alkalinity as CaCO3","Alkalinity as OH-","Calcium","Calcium, total, unfiltered","Chloride","Carbonate","Conductivity, laboratory","Bicarbonate","Hardness (CaCO3)","Ion Balance","Potassium","Potassium, total, unfiltered","Magnesium","Magnesium, total, unfiltered","Sodium","Sodium, total, unfiltered","Sodium and Potassium combined","Sulfate","Total Anions","Total Cations","Total Dissolved Solids","Tritium","Age of Water using dissolved gases","Silver","Silver, total, unfiltered","Aluminum","Aluminum, total, unfiltered","Arsenic","Arsenic, total, unfiltered","Boron","Boron, total, unfiltered","Barium","Barium, total, unfiltered","Beryllium","Beryllium, total, unfiltered","Bromide","13C:12C ratio","14C content, pmc","Uncorrected C14 age","Cadmium","Cadmium, total, unfiltered","Chlorofluorocarbon-11 avg age","Chlorofluorocarbon-113 avg age","Chlorofluorocarbon-113/12 avg RATIO age","Chlorofluorocarbon-12 avg age","Cobalt","Cobalt, total, unfiltered","Chromium","Chromium, total, unfiltered","Copper","Copper, total, unfiltered","delta O18 sulfate","Sulfate 34 isotope ratio","Fluoride","Iron","Iron, total, unfiltered","Deuterium:Hydrogen ratio","Mercury","Mercury, total, unfiltered","Lithium","Lithium, total, unfiltered","Manganese","Manganese, total, unfiltered","Molybdenum","Molybdenum, total, unfiltered","Nickel","Nickel, total, unfiltered","Nitrite (as NO2)","Nitrite (as N)","Nitrate (as NO3)","Nitrate (as N)","18O:16O ratio","Lead","Lead, total, unfiltered","Phosphate","Antimony","Antimony, total, unfiltered","Selenium","Selenium, total, unfiltered","Sulfur hexafluoride","Silicon","Silicon, total, unfiltered","Silica","Tin","Tin, total, unfiltered","Strontium","Strontium, total, unfiltered","Strontium 87:86 ratio","Thorium","Thorium, total, unfiltered","Titanium","Titanium, total, unfiltered","Thallium","Thallium, total, unfiltered","Uranium (total, by ICP-MS)","Uranium, total, unfiltered","Vanadium","Vanadium, total, unfiltered","Zinc","Zinc, total, unfiltered","Corrected C14 in years","Arsenite (arsenic species)","Arsenate (arsenic species)","Cyanide","Estimated recharge temperature","Hydrogen sulfide","Ammonia","Ammonium","Total nitrogen","Total Kjeldahl nitrogen","Dissolved organic carbon","Total organic carbon","delta C13 of dissolved inorganic carbon"],"title":"parameter_name"},"parameter_type":{"type":"string","enum":["Field Parameter","Metal","Radionuclide","Major Element","Minor Element","Physical property"],"title":"parameter_type"},"permission_type":{"type":"string","enum":["Water Level Sample","Water Chemistry Sample","Datalogger Installation"],"title":"permission_type"},"phone_type":{"type":"string","enum":["Primary","Work","Home","Mobile"],"title":"phone_type"},"publication_type":{"type":"string","enum":["Map","Report","Dataset","Model","Software","Paper","Thesis","Book","Conference","Webpage"],"title":"publication_type"},"qc_type":{"type":"string","enum":["Normal","Duplicate","Split","Field Blank","Trip Blank","Equipment Blank"],"title":"qc_type"},"release_status":{"type":"string","enum":["draft","provisional","final","published","archived","public","private"],"title":"release_status"},"review_status":{"type":"string","enum":["approved","not reviewed"],"title":"review_status"},"role":{"type":"string","enum":["Unknown","Principal Investigator","Owner","Manager","Operator","Driller","Geologist","Hydrologist","Hydrogeologist","Engineer","Organization","Specialist","Technician","Research Assistant","Research Scientist","Graduate Student","Biologist","Lab Manager","Publications Manager","Software Developer"],"title":"role"},"sample_matrix":{"type":"string","enum":["water","groundwater","soil"],"title":"sample_matrix"},"sample_method":{"type":"string","enum":["Unknown","Airline measurement","Analog or graphic recorder","Calibrated airline measurement","Differential GPS; especially applicable to surface expression of ground water","Estimated","Transducer","Pressure-gage measurement","Calibrated pressure-gage measurement","Interpreted from geophysical logs","Manometer","Non-recording gage","Observed (required for F, N, and W water level status)","Sonic water level meter (acoustic pulse)","Reported, method not known","Steel-tape measurement","Electric tape measurement (E-probe)","Unknown (for legacy data only; not for new data entry)","Calibrated electric tape; accuracy of equipment has been checked","Calibrated electric cable","Uncalibrated electric cable","Continuous acoustic sounder","Measurement not attempted","null placeholder","bailer","faucet at well head","faucet or outlet at house","grab sample","pump","thief sampler"],"title":"sample_method"},"schemas__location__GeoJSONGeometry":{"properties":{"type":{"type":"string","title":"Type","default":"Point"},"coordinates":{"items":{},"type":"array","maxItems":3,"minItems":3,"title":"Coordinates","description":"Coordinates in [longitude, latitude, elevation] format"}},"type":"object","required":["coordinates"],"title":"GeoJSONGeometry"},"schemas__thing__GeoJSONGeometry":{"properties":{"type":{"type":"string","title":"Type"},"coordinates":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"items":{"items":{"type":"number"},"type":"array"},"type":"array"},{"items":{"items":{"items":{"type":"number"},"type":"array"},"type":"array"},"type":"array"},{"items":{"items":{"items":{"items":{"type":"number"},"type":"array"},"type":"array"},"type":"array"},"type":"array"}],"title":"Coordinates"}},"type":"object","required":["type","coordinates"],"title":"GeoJSONGeometry","description":"Geometry schema for GeoJSON response."},"screen_type":{"type":"string","enum":["PVC","Steel","Concrete"],"title":"screen_type"},"sensor_type":{"type":"string","enum":["DiverLink","Diver Cable","Pressure Transducer","Data Logger","Barometer","Acoustic Sounder","Precip Collector","Camera","Soil Moisture Sensor","Tipping Bucket","Weather Station","Weir","Snow Lysimeter","Lysimeter"],"title":"sensor_type"},"spring_type":{"type":"string","enum":["Artesian","Ephemeral","Perennial","Thermal","Mineral"],"title":"spring_type"},"unit":{"type":"string","enum":["dimensionless","ft","ftbgs","F","mg/L","mW/m\u00b2","W/m\u00b2","W/m\u00b7K","m\u00b2/s","deg C","deg second","deg minute","second","minute","hour","m"],"title":"unit"},"well_construction_method":{"type":"string","enum":["Unknown","Air-Rotary","Bored or augered","Cable-tool","Hydraulic rotary (mud or water)","Air percussion","Reverse rotary","Driven","Other (explain in notes)"],"title":"well_construction_method"},"well_pump_type":{"type":"string","enum":["Submersible","Jet","Line Shaft","Hand","Windmill"],"title":"well_pump_type"},"well_purpose":{"type":"string","enum":["Unknown","Open, unequipped well","Commercial","Domestic","Power generation","Irrigation","Livestock","Mining","Industrial","Observation","Public supply","Shared domestic","Institutional","Unused","Exploration","Monitoring","Production","Injection"],"title":"well_purpose"}},"securitySchemes":{"OAuth2AuthorizationCodeBearer":{"type":"oauth2","flows":{"authorizationCode":{"scopes":{"openid":"openid","offline_access":"offline_access"},"authorizationUrl":"https://authentik.newmexicowaterdata.org/application/o/authorize/","tokenUrl":"https://authentik.newmexicowaterdata.org/application/o/token/"}}}}}} \ No newline at end of file diff --git a/src/generated/types.gen.ts b/src/generated/types.gen.ts index b0ef527f..858a261d 100644 --- a/src/generated/types.gen.ts +++ b/src/generated/types.gen.ts @@ -50,6 +50,30 @@ export type AddressResponse = { address_type: AddressType; }; +/** + * AssetAssociationResponse + */ +export type AssetAssociationResponse = { + /** + * Asset Id + */ + asset_id: number; + /** + * Thing Id + */ + thing_id?: number | null; +}; + +/** + * AssetAssociationUpdate + */ +export type AssetAssociationUpdate = { + /** + * Thing Id + */ + thing_id?: number | null; +}; + /** * AssetResponse */ @@ -131,6 +155,28 @@ export type BodyBulkUploadGroundwaterLevelsObservationGroundwaterLevelBulkUpload file: string; }; +/** + * Body_upload_and_record_asset_asset_upload_and_record_post + */ +export type BodyUploadAndRecordAssetAssetUploadAndRecordPost = { + /** + * File + */ + file: string; + /** + * Thing Id + */ + thing_id: number; + /** + * Label + */ + label?: string | null; + /** + * Name + */ + name?: string | null; +}; + /** * Body_upload_asset_asset_upload_post */ @@ -982,6 +1028,70 @@ export type FeatureCollectionResponse = { features?: Array; }; +/** + * FeedbackCreate + */ +export type FeedbackCreate = { + /** + * Type + */ + type: 'bug' | 'feature'; + /** + * Page Url + */ + page_url: string; + /** + * Reporter Name + */ + reporter_name?: string | null; + /** + * Reporter Email + */ + reporter_email?: string | null; + /** + * Browser + */ + browser?: string | null; + /** + * Submitted At + */ + submitted_at?: string | null; + /** + * What Happened + */ + what_happened?: string | null; + /** + * Severity + */ + severity?: string; + /** + * Problem + */ + problem?: string | null; + /** + * Who Would Use + */ + who_would_use?: string | null; + /** + * What It Should Do + */ + what_it_should_do?: string | null; +}; + +/** + * FeedbackResponse + */ +export type FeedbackResponse = { + /** + * Jira Key + */ + jira_key: string; + /** + * Jira Url + */ + jira_url: string; +}; + /** * FieldActivityResponse */ @@ -1131,6 +1241,88 @@ export type GeoJsonutmCoordinates = { horizontal_datum?: string; }; +/** + * GeothermalWellResponse + * + * Read model for a geothermal well sourced from the legacy NM_Wells mirror. + * + * NOTE: This currently reads directly from the ``NMW_WellHeaders`` / + * ``NMW_WellLocations`` staging tables (see ``db/nmw_legacy.py``). Once the + * NM_Wells -> Ocotillo transform lands, these rows will be backed by the + * ``thing`` table and ``thing_id`` will be populated. Until then ``thing_id`` + * is always ``None`` and ``well_data_id`` (legacy GUID) is the identifier. + */ +export type GeothermalWellResponse = { + /** + * Well Data Id + */ + well_data_id: string; + /** + * Thing Id + */ + thing_id?: number | null; + /** + * Api + */ + api?: string | null; + /** + * Name + */ + name?: string | null; + /** + * Well Number + */ + well_number?: string | null; + /** + * Well Class + */ + well_class?: string | null; + /** + * Well Type + */ + well_type?: string | null; + /** + * Status + */ + status?: string | null; + /** + * Operator + */ + operator?: string | null; + /** + * Owner + */ + owner?: string | null; + /** + * Total Depth + */ + total_depth?: number | null; + /** + * Completion Date + */ + completion_date?: string | null; + /** + * Has Geothermal Data + */ + has_geothermal_data?: boolean | null; + /** + * County + */ + county?: string | null; + /** + * State + */ + state?: string | null; + /** + * Latitude + */ + latitude?: number | null; + /** + * Longitude + */ + longitude?: number | null; +}; + /** * GroundwaterLevelObservationResponse */ @@ -1213,6 +1405,10 @@ export type GroupResponse = { * Parent Group Id */ parent_group_id: number | null; + /** + * Well Count + */ + well_count?: number; }; /** @@ -1611,6 +1807,32 @@ export type PageEmailResponse = { pages: number; }; +/** + * Page[GeothermalWellResponse] + */ +export type PageGeothermalWellResponse = { + /** + * Items + */ + items: Array; + /** + * Total + */ + total: number; + /** + * Page + */ + page: number; + /** + * Size + */ + size: number; + /** + * Pages + */ + pages: number; +}; + /** * Page[GroundwaterLevelObservationResponse] */ @@ -3860,7 +4082,7 @@ export type NoteType = 'Access' | 'Directions' | 'Communication' | 'Construction /** * organization */ -export type Organization = 'Unknown' | 'City of Aztec' | 'Daybreak Investments' | 'Vallecitos HOA' | 'SFC, Santa Fe Animal Shelter' | 'El Guicu Ditch Association' | 'Santa Fe Municipal Airport' | 'Uluru Development' | "AllSup's Convenience Stores" | 'Santa Fe Downs Resort' | 'City of Truth or Consequences, WWTP' | 'Riverbend Hotsprings' | 'Armendaris Ranch' | 'El Paso Water' | 'BLM, Socorro Field Office' | 'USFWS' | 'Sile MDWCA' | 'Pena Blanca Water & Sanitation District' | 'Town of Questa' | 'Town of Cerro' | 'Farr Cattle Company' | 'Carrizozo Orchard' | 'USFS, Kiowa Grasslands' | 'Cloud Country West Subdivision' | 'Chama West WUA' | 'El Rito Regional Water and Waste Water Association' | 'West Rim MDWUA' | 'Village of Willard' | 'Quemado Municipal Water & SWA' | 'Coyote Creek MDWUA' | 'Lamy MDWCA' | 'La Joya CWDA' | 'NM Firefighters Training Academy' | 'Cebolleta Land Grant' | 'Madrid Water Co-op' | 'Sun Valley Water and Sanitation' | 'Bluewater Lake MDWCA' | 'Bluewater Acres Domestic WUA' | 'Lybrook MDWCA' | 'New Mexico Museum of Natural History' | 'Hillsboro MDWCA' | 'Tyrone MDWCA' | 'Santa Clara Water System' | 'Casas Adobes MDWCA' | 'Lake Roberts WUA' | 'El Creston MDWCA' | 'Reserve Municipality Water Works' | 'Town of Estancia' | 'Pie Town MDWCA' | 'Roosevelt SWCD' | 'Otis MDWCA' | 'White Cliffs MDWUA' | 'Vista Linda Water Co-op' | 'Anasazi Trails Water Co-op' | 'Canon MDWCA' | 'Placitas Trails Water Co-op' | 'BLM, Roswell Office' | 'Forked Lightning Ranch' | 'Cottonwood RWA' | 'Pinon Ridge WUA' | 'McSherry Farms' | 'Agua Sana WUA' | 'Chamita MDWCA' | 'W Spear-bar Ranch' | 'Village of Capitan' | 'Brazos MDWCA' | 'Alto Alps HOA' | 'Chiricahua Desert Museum' | 'Bike Ranch' | 'Hachita MDWCA' | 'Carrizozo Municipal Water' | 'Dunhill Ranch' | 'Santa Fe Conservation Trust' | 'NMSU' | 'USGS' | 'TWDB' | 'NMED' | 'NMOSE' | 'NMBGMR' | 'Bernalillo County' | 'BLM' | 'BLM Taos Office' | 'SFC' | 'SFC, Fire Facilities' | 'SFC, Utilities Dept.' | 'SFC, Valle Vista Water Utility, Inc.' | 'City of Santa Fe' | 'City of Santa Fe WWTP' | 'City of Santa Fe, Municipal Recreation Complex' | 'City of Santa Fe, Sangre de Cristo Water Co.' | 'NMISC' | 'PVACD' | 'Bayard' | 'SNL' | 'USFS' | 'NMT' | 'NPS' | 'NMRWA' | 'NMDOT' | 'Taos SWCD' | 'Otero SWCD' | 'Northeastern SWCD' | 'CDWR' | 'Pendaries Village' | 'A&T Pump & Well Service, LLC' | 'A. G. Wassenaar, Inc' | 'AMEC' | 'Balleau Groundwater, Inc' | 'CDM Smith' | 'CH2M Hill' | 'Corbin Consulting, Inc' | 'Chevron' | 'Daniel B. Stephens & Associates, Inc' | 'EnecoTech' | 'Faith Engineering, Inc' | 'Foster Well Service, Inc' | 'Glorieta Geoscience, Inc' | 'Golder Associates, Inc' | "Hathorn's Well Service, Inc" | 'Hydroscience Associates, Inc' | 'IC Tech, Inc' | 'John Shomaker & Associates, Inc' | 'Kuckleman Pump Service' | 'Los Golondrinas' | 'Minton Engineers' | 'MJDarrconsult, Inc' | 'Puerta del Canon Ranch' | 'Rodgers & Company, Inc' | 'San Pedro Creek Estates HOA' | 'Statewide Drilling, Inc' | 'Tec Drilling Limited' | 'Tetra Tech, Inc' | 'Thompson Drilling, Inc' | 'Witcher & Associates' | 'Zeigler Geologic Consulting, LLC' | 'Sandia Well Service, Inc' | 'San Marcos Association' | 'URS' | 'Vista del Oro' | 'Abeyta Engineering, Inc' | 'Adobe Ranch' | 'Agua Fria Community Water Association' | 'Apache Gap Ranch' | 'Aspendale Mountain Retreat' | 'Augustin Plains Ranch LLC' | 'B & B Cattle Co' | 'Berridge Distributing Company' | "Bishop's Lodge" | 'Bonanza Creek Ranch' | 'Bug Scuffle Water Association' | 'Wehinahpay Mountain Camp' | 'Campbell Ranch' | 'Capitol Ford Santa Fe' | 'Cemex, Inc' | 'Cerro Community Center' | 'Santa Fe Jewish Center' | 'Chupadero MDWCA' | 'Cielo Lumbre HOA' | 'Circle Cross Ranch' | 'City of Alamogordo' | 'City of Portales, Public Works Dept.' | 'City of Socorro' | 'Commonwealth Conservancy' | 'Costilla MDWCA' | 'Country Club Garden Mobile Home Park' | 'Crossroads Cattle Co., Ltd' | 'Double H Ranch' | 'E.A. Meadows East' | 'El Camino Realty, Inc' | 'Eldorado Area Water & Sanitation District' | 'Bourbon Grill at El Gancho' | 'El Prado HOA' | 'El Rancho de las Golondrinas' | 'El Rito Canyon MDWCA' | 'Encantado Enterprises' | 'Estrella Concepts LLC' | 'Sixteen Springs Fire Department' | 'Fire Water Lodge' | 'Ford County Land & Cattle Company, Inc' | 'Friendly Construction, Inc' | 'Hacienda Del Cerezo' | 'Hefker Vega Ranch' | 'High Nogal Ranch' | 'Holloman Air Force Base' | 'Hyde Park Estates MDWCA' | 'Desert Village RV & Mobile Home Park' | 'K. Schmitt Trust' | 'La Cienega MDWCA' | 'La Vista HOA' | 'Land Ventures LLC' | 'Las Lagunitas' | 'Las Lagunitas HOA' | 'Living World Ministries' | 'Los Atrevidos, Inc' | 'Los Prados HOA' | 'Malaga MDWCA & SWA' | 'Mangas Outfitters' | 'Medina Gravel Pit' | 'Mendenhall Trading Co' | 'Mesa Verde Ranch' | 'NMDGF' | 'NMSU College of Agriculture' | 'Naiche Development' | 'NRAO' | 'NMSA' | 'Nogal MDWCA' | 'O Bar O Ranch' | 'OMI Wastewater Treatment Plant' | 'Old Road Ranch Pardners Ltd' | 'PNM Service Center' | 'Peace Tabernacle Church' | 'Pecos Trail Inn' | 'Pelican Spa' | 'Pistachio Tree Ranch' | 'Rancho Encantado' | 'Rancho San Lucas' | 'Rancho San Marcos' | 'Rancho Viejo Partnership' | 'Ranney Ranch' | 'Rio En Medio MDWCA' | 'San Acacia MDWCA' | 'San Juan Residences' | 'Sangre de Cristo Estates' | 'Santa Fe Community College' | 'Sangre de Cristo Center' | 'Santa Fe Horse Park' | 'Santa Fe Opera' | 'Santa Fe Waldorf School' | 'Shidoni Foundry and Gallery' | 'Sierra Grande Lodge' | 'Sierra Vista Retirement Community' | 'Slash Triangle Ranch' | 'Stagecoach Motel' | 'State of New Mexico' | 'Stephenson Ranch' | 'Sun Broadcasting Network' | 'Tano Rd LLC' | 'UNM-Taos' | 'Tee Pee Ranch/Tee Pee Subdivision' | 'Tent Rock, Inc' | 'Tesuque MDWCA' | 'The Great Cloud Zen Center' | 'Three Rivers Ranch' | 'Timberon Water and Sanitation District' | 'Town of Magdalena' | 'Town of Taos' | 'Town of Taos, National Guard Armory' | 'Trinity Ranch' | 'Tularosa Basin National Desalination Research Facility' | 'Turquoise Trail Charter School' | 'US Bureau of Indian Affairs, Santa Fe Indian School' | 'USFS, Carson NF, Taos Office' | 'USFS, Cibola NF, Magdalena Ranger District' | 'USFS, Santa Fe NF, Espanola Ranger District' | 'Ute Mountain Farms' | 'VA Hospital' | 'Velte' | 'Vereda Serena Property' | 'Village of Corona' | 'Village of Floyd' | 'Village of Melrose' | 'Village of Vaughn' | 'Vista Land Company' | 'Vista Redonda MDWCA' | 'Vista de Oro de Placitas Water Users Coop' | 'Walker Ranch' | 'Wild & Woolley Trailer Ranch' | 'Winter Brothers' | 'Yates Petroleum Corporation' | 'Zamora Accounting Services' | 'Agua Sana MWCD' | 'Canada Los Alamos MDWCA' | 'Canjilon Mutual Domestic Water System' | 'Cebolla Mutual Domestic' | 'Chihuahuan Desert Rangeland Research Center (CDRRC)' | 'East Rio Arriba SWCD' | 'El Prado Municipal Water' | 'Hachita Mutual Domestic' | 'Jornada Experimental Range (JER)' | 'La Canada Way HOA' | 'Los Ojos Mutual Domestic' | 'The Nature Conservancy (TNC)' | 'Smith Ranch LLC' | 'Zia Pueblo' | 'Our Lady of Guadalupe (OLG)' | 'PLSS'; +export type Organization = 'Unknown' | 'City of Aztec' | 'Daybreak Investments' | 'Vallecitos HOA' | 'SFC, Santa Fe Animal Shelter' | 'El Guicu Ditch Association' | 'Santa Fe Municipal Airport' | 'Uluru Development' | "AllSup's Convenience Stores" | 'Santa Fe Downs Resort' | 'City of Truth or Consequences, WWTP' | 'Riverbend Hotsprings' | 'Armendaris Ranch' | 'El Paso Water' | 'BLM, Socorro Field Office' | 'USFWS' | 'Sile MDWCA' | 'Pena Blanca Water & Sanitation District' | 'Town of Questa' | 'Town of Cerro' | 'Cerro MDWCA' | 'Farr Cattle Company' | 'Carrizozo Orchard' | 'White Oaks Pottery' | 'USFS, Kiowa Grasslands' | 'Cloud Country West Subdivision' | 'Chama West WUA' | 'El Rito Regional Water and Waste Water Association' | 'El Rito MDWCA' | 'West Rim MDWUA' | 'Village of Willard' | 'Quemado Municipal Water & SWA' | 'Coyote Creek MDWUA' | 'Lamy MDWCA' | 'La Joya CWDA' | 'NM Firefighters Training Academy' | 'Cebolleta Land Grant' | 'Madrid Water Co-op' | 'Sun Valley Water and Sanitation' | 'Bluewater Lake MDWCA' | 'Bluewater Acres Domestic WUA' | 'Lybrook MDWCA' | 'New Mexico Museum of Natural History' | 'Hillsboro MDWCA' | 'Tyrone MDWCA' | 'Santa Clara Water System' | 'Casas Adobes MDWCA' | 'Lake Roberts WUA' | 'El Creston MDWCA' | 'Reserve Municipality Water Works' | 'Town of Estancia' | 'Pie Town MDWCA' | 'Roosevelt SWCD' | 'Otis MDWCA' | 'White Cliffs MDWUA' | 'Vista Linda Water Co-op' | 'Anasazi Trails Water Co-op' | 'Canon MDWCA' | 'Placitas Trails Water Co-op' | 'BLM, Roswell Office' | 'Forked Lightning Ranch' | 'Cottonwood RWA' | 'Pinon Ridge WUA' | 'McSherry Farms' | 'Agua Sana WUA' | 'Chamita MDWCA' | 'W Spear-bar Ranch' | 'Village of Capitan' | 'Brazos MDWCA' | 'Alto Alps HOA' | 'Chiricahua Desert Museum' | 'Bike Ranch' | 'Hachita MDWCA' | 'Carrizozo Municipal Water' | 'Dunhill Ranch' | 'Santa Fe Conservation Trust' | 'NMSU' | 'USGS' | 'TWDB' | 'NMED' | 'NMOSE' | 'NMBGMR' | 'Bernalillo County' | 'BLM' | 'BLM Taos Office' | 'SFC' | 'SFC, Fire Facilities' | 'SFC, Utilities Dept.' | 'SFC, Valle Vista Water Utility, Inc.' | 'City of Santa Fe' | 'City of Santa Fe WWTP' | 'City of Santa Fe, Municipal Recreation Complex' | 'City of Santa Fe, Sangre de Cristo Water Co.' | 'NMISC' | 'PVACD' | 'Bayard' | 'SNL' | 'USFS' | 'NMT' | 'NPS' | 'NMRWA' | 'NMDOT' | 'Taos SWCD' | 'Otero SWCD' | 'Northeastern SWCD' | 'CDWR' | 'Pendaries Village' | 'A&T Pump & Well Service, LLC' | 'A. G. Wassenaar, Inc' | 'AMEC' | 'Balleau Groundwater, Inc' | 'CDM Smith' | 'CH2M Hill' | 'Corbin Consulting, Inc' | 'Chevron' | 'Daniel B. Stephens & Associates, Inc' | 'EnecoTech' | 'Faith Engineering, Inc' | 'Foster Well Service, Inc' | 'Glorieta Geoscience, Inc' | 'Golder Associates, Inc' | "Hathorn's Well Service, Inc" | 'Hydroscience Associates, Inc' | 'IC Tech, Inc' | 'John Shomaker & Associates, Inc' | 'Kuckleman Pump Service' | 'Los Golondrinas' | 'Minton Engineers' | 'MJDarrconsult, Inc' | 'Puerta del Canon Ranch' | 'Rodgers & Company, Inc' | 'San Pedro Creek Estates HOA' | 'Statewide Drilling, Inc' | 'Tec Drilling Limited' | 'Tetra Tech, Inc' | 'Thompson Drilling, Inc' | 'Witcher & Associates' | 'Zeigler Geologic Consulting, LLC' | 'Sandia Well Service, Inc' | 'San Marcos Association' | 'URS' | 'Vista del Oro' | 'Abeyta Engineering, Inc' | 'Adobe Ranch' | 'Agua Fria Community Water Association' | 'Apache Gap Ranch' | 'Aspendale Mountain Retreat' | 'Augustin Plains Ranch LLC' | 'B & B Cattle Co' | 'Berridge Distributing Company' | "Bishop's Lodge" | 'Bonanza Creek Ranch' | 'Bug Scuffle Water Association' | 'Wehinahpay Mountain Camp' | 'Campbell Ranch' | 'Capitol Ford Santa Fe' | 'Cemex, Inc' | 'Cerro Community Center' | 'Santa Fe Jewish Center' | 'Chupadero MDWCA' | 'Cielo Lumbre HOA' | 'Circle Cross Ranch' | 'City of Alamogordo' | 'City of Portales, Public Works Dept.' | 'City of Socorro' | 'Commonwealth Conservancy' | 'Costilla MDWCA' | 'Country Club Garden Mobile Home Park' | 'Crossroads Cattle Co., Ltd' | 'Double H Ranch' | 'E.A. Meadows East' | 'El Camino Realty, Inc' | 'Eldorado Area Water & Sanitation District' | 'Bourbon Grill at El Gancho' | 'El Prado HOA' | 'El Rancho de las Golondrinas' | 'El Rito Canyon MDWCA' | 'Encantado Enterprises' | 'Estrella Concepts LLC' | 'Sixteen Springs Fire Department' | 'Fire Water Lodge' | 'Ford County Land & Cattle Company, Inc' | 'Friendly Construction, Inc' | 'Hacienda Del Cerezo' | 'Hefker Vega Ranch' | 'High Nogal Ranch' | 'Holloman Air Force Base' | 'Hyde Park Estates MDWCA' | 'Desert Village RV & Mobile Home Park' | 'K. Schmitt Trust' | 'La Cienega MDWCA' | 'La Vista HOA' | 'Land Ventures LLC' | 'Las Lagunitas' | 'Las Lagunitas HOA' | 'Lightning Dock Zanskar' | 'Living World Ministries' | 'Los Atrevidos, Inc' | 'Los Prados HOA' | 'Malaga MDWCA & SWA' | 'Mangas Outfitters' | 'Medina Gravel Pit' | 'Mendenhall Trading Co' | 'Mesa Verde Ranch' | 'NMDGF' | 'NMSU College of Agriculture' | 'Naiche Development' | 'NRAO' | 'NMSA' | 'Nogal MDWCA' | 'O Bar O Ranch' | 'OMI Wastewater Treatment Plant' | 'Old Road Ranch Pardners Ltd' | 'PNM Service Center' | 'Peace Tabernacle Church' | 'Pecos Trail Inn' | 'Pelican Spa' | 'Pistachio Tree Ranch' | 'Rancho Encantado' | 'Rancho San Lucas' | 'Rancho San Marcos' | 'Rancho Viejo Partnership' | 'Ranney Ranch' | 'Rio En Medio MDWCA' | 'San Acacia MDWCA' | 'San Juan Residences' | 'Sangre de Cristo Estates' | 'Santa Fe Community College' | 'Sangre de Cristo Center' | 'Santa Fe Horse Park' | 'Santa Fe Opera' | 'Santa Fe Waldorf School' | 'Shidoni Foundry and Gallery' | 'Sierra Grande Lodge' | 'Sierra Vista Retirement Community' | 'Slash Triangle Ranch' | 'Spanish Stirrup Rockshop' | 'Sparrowhawk Farm' | 'Stagecoach Motel' | 'State of New Mexico' | 'Stephenson Ranch' | 'Sun Broadcasting Network' | 'Tano Rd LLC' | 'UNM-Taos' | 'Tee Pee Ranch/Tee Pee Subdivision' | 'Tent Rock, Inc' | 'Tesuque MDWCA' | 'The Great Cloud Zen Center' | 'Three Rivers Ranch' | 'Timberon Water and Sanitation District' | 'Town of Magdalena' | 'Town of Taos' | 'Town of Taos, National Guard Armory' | 'Trinity Ranch' | 'Tularosa Basin National Desalination Research Facility' | 'Turquoise Trail Charter School' | 'US Bureau of Indian Affairs, Santa Fe Indian School' | 'USFS, Carson NF, Taos Office' | 'USFS, Cibola NF, Magdalena Ranger District' | "USFS, Cibola NF, Supervisor's Office" | 'USFS, Santa Fe NF, Espanola Ranger District' | 'Ute Mountain Farms' | 'VA Hospital' | 'Velte' | 'Vereda Serena Property' | 'Village of Corona' | 'Village of Floyd' | 'Village of Melrose' | 'Village of Vaughn' | 'Vista Land Company' | 'Vista Redonda MDWCA' | 'Vista de Oro de Placitas Water Users Coop' | 'Walker Ranch' | 'Wild & Woolley Trailer Ranch' | 'Winter Brothers' | 'Yates Petroleum Corporation' | 'Zamora Accounting Services' | 'Agua Sana MWCD' | 'Canada Los Alamos MDWCA' | 'Canjilon Mutual Domestic Water System' | 'Cebolla Mutual Domestic' | 'Chihuahuan Desert Rangeland Research Center (CDRRC)' | 'East Rio Arriba SWCD' | 'El Prado Municipal Water' | 'Hachita Mutual Domestic' | 'Jornada Experimental Range (JER)' | 'La Canada Way HOA' | 'Los Ojos Mutual Domestic' | 'The Nature Conservancy (TNC)' | 'Smith Ranch LLC' | 'Santa Ana Pueblo Department of Natural Resources' | 'Village of Hope' | 'WSP' | 'Zia Pueblo' | 'Our Lady of Guadalupe (OLG)' | 'PLSS'; /** * origin_type @@ -3993,6 +4215,20 @@ export type WellPumpType = 'Submersible' | 'Jet' | 'Line Shaft' | 'Hand' | 'Wind */ export type WellPurpose = 'Unknown' | 'Open, unequipped well' | 'Commercial' | 'Domestic' | 'Power generation' | 'Irrigation' | 'Livestock' | 'Mining' | 'Industrial' | 'Observation' | 'Public supply' | 'Shared domestic' | 'Institutional' | 'Unused' | 'Exploration' | 'Monitoring' | 'Production' | 'Injection'; +export type HealthHealthGetData = { + body?: never; + path?: never; + query?: never; + url: '/health'; +}; + +export type HealthHealthGetResponses = { + /** + * Successful Response + */ + 200: unknown; +}; + export type UploadAssetAssetUploadPostData = { body: BodyUploadAssetAssetUploadPost; path?: never; @@ -4022,6 +4258,31 @@ export type UploadAssetAssetUploadPostResponses = { export type UploadAssetAssetUploadPostResponse = UploadAssetAssetUploadPostResponses[keyof UploadAssetAssetUploadPostResponses]; +export type UploadAndRecordAssetAssetUploadAndRecordPostData = { + body: BodyUploadAndRecordAssetAssetUploadAndRecordPost; + path?: never; + query?: never; + url: '/asset/upload-and-record'; +}; + +export type UploadAndRecordAssetAssetUploadAndRecordPostErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type UploadAndRecordAssetAssetUploadAndRecordPostError = UploadAndRecordAssetAssetUploadAndRecordPostErrors[keyof UploadAndRecordAssetAssetUploadAndRecordPostErrors]; + +export type UploadAndRecordAssetAssetUploadAndRecordPostResponses = { + /** + * Successful Response + */ + 201: AssetResponse; +}; + +export type UploadAndRecordAssetAssetUploadAndRecordPostResponse = UploadAndRecordAssetAssetUploadAndRecordPostResponses[keyof UploadAndRecordAssetAssetUploadAndRecordPostResponses]; + export type ListAssetsAssetGetData = { body?: never; path?: never; @@ -4087,6 +4348,42 @@ export type AddAssetAssetPostResponses = { export type AddAssetAssetPostResponse = AddAssetAssetPostResponses[keyof AddAssetAssetPostResponses]; +export type ListUnassociatedAssetsAssetUnassociatedGetData = { + body?: never; + path?: never; + query?: { + /** + * Page + * + * Page number + */ + page?: number; + /** + * Size + */ + size?: number; + }; + url: '/asset/unassociated'; +}; + +export type ListUnassociatedAssetsAssetUnassociatedGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type ListUnassociatedAssetsAssetUnassociatedGetError = ListUnassociatedAssetsAssetUnassociatedGetErrors[keyof ListUnassociatedAssetsAssetUnassociatedGetErrors]; + +export type ListUnassociatedAssetsAssetUnassociatedGetResponses = { + /** + * Successful Response + */ + 200: PageAssetResponse; +}; + +export type ListUnassociatedAssetsAssetUnassociatedGetResponse = ListUnassociatedAssetsAssetUnassociatedGetResponses[keyof ListUnassociatedAssetsAssetUnassociatedGetResponses]; + export type DeleteAssetAssetAssetIdDeleteData = { body?: never; path: { @@ -4175,6 +4472,36 @@ export type UpdateAssetAssetAssetIdPatchResponses = { 200: unknown; }; +export type UpdateAssetThingAssociationAssetAssetIdAssociationPatchData = { + body: AssetAssociationUpdate; + path: { + /** + * Asset Id + */ + asset_id: number; + }; + query?: never; + url: '/asset/{asset_id}/association'; +}; + +export type UpdateAssetThingAssociationAssetAssetIdAssociationPatchErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type UpdateAssetThingAssociationAssetAssetIdAssociationPatchError = UpdateAssetThingAssociationAssetAssetIdAssociationPatchErrors[keyof UpdateAssetThingAssociationAssetAssetIdAssociationPatchErrors]; + +export type UpdateAssetThingAssociationAssetAssetIdAssociationPatchResponses = { + /** + * Successful Response + */ + 200: AssetAssociationResponse; +}; + +export type UpdateAssetThingAssociationAssetAssetIdAssociationPatchResponse = UpdateAssetThingAssociationAssetAssetIdAssociationPatchResponses[keyof UpdateAssetThingAssociationAssetAssetIdAssociationPatchResponses]; + export type RemoveAssetAssetAssetIdRemoveDeleteData = { body?: never; path: { @@ -4252,7 +4579,7 @@ export type GetContactsContactGetData = { /** * Filter */ - filter?: string; + filter?: Array | null; /** * Thing Id */ @@ -4972,6 +5299,36 @@ export type GetContactAddressesContactContactIdAddressGetResponses = { export type GetContactAddressesContactContactIdAddressGetResponse = GetContactAddressesContactContactIdAddressGetResponses[keyof GetContactAddressesContactContactIdAddressGetResponses]; +export type GetDisclaimerDisclaimerGetData = { + body?: never; + path?: never; + query?: { + /** + * F + * + * Response format. Use 'json' for the text as data. + */ + f?: string | null; + }; + url: '/disclaimer'; +}; + +export type GetDisclaimerDisclaimerGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetDisclaimerDisclaimerGetError = GetDisclaimerDisclaimerGetErrors[keyof GetDisclaimerDisclaimerGetErrors]; + +export type GetDisclaimerDisclaimerGetResponses = { + /** + * The disclaimer as HTML (default) or JSON (?f=json). + */ + 200: unknown; +}; + export type GetGeospatialGeospatialGetData = { body?: never; path?: never; @@ -5105,6 +5462,72 @@ export type CreateGroupGroupPostResponses = { export type CreateGroupGroupPostResponse = CreateGroupGroupPostResponses[keyof CreateGroupGroupPostResponses]; +export type RemoveThingFromGroupRouteGroupGroupIdThingsThingIdDeleteData = { + body?: never; + path: { + /** + * Group Id + */ + group_id: number; + /** + * Thing Id + */ + thing_id: number; + }; + query?: never; + url: '/group/{group_id}/things/{thing_id}'; +}; + +export type RemoveThingFromGroupRouteGroupGroupIdThingsThingIdDeleteErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type RemoveThingFromGroupRouteGroupGroupIdThingsThingIdDeleteError = RemoveThingFromGroupRouteGroupGroupIdThingsThingIdDeleteErrors[keyof RemoveThingFromGroupRouteGroupGroupIdThingsThingIdDeleteErrors]; + +export type RemoveThingFromGroupRouteGroupGroupIdThingsThingIdDeleteResponses = { + /** + * Successful Response + */ + 204: void; +}; + +export type RemoveThingFromGroupRouteGroupGroupIdThingsThingIdDeleteResponse = RemoveThingFromGroupRouteGroupGroupIdThingsThingIdDeleteResponses[keyof RemoveThingFromGroupRouteGroupGroupIdThingsThingIdDeleteResponses]; + +export type AddThingToGroupRouteGroupGroupIdThingsThingIdPostData = { + body?: never; + path: { + /** + * Group Id + */ + group_id: number; + /** + * Thing Id + */ + thing_id: number; + }; + query?: never; + url: '/group/{group_id}/things/{thing_id}'; +}; + +export type AddThingToGroupRouteGroupGroupIdThingsThingIdPostErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type AddThingToGroupRouteGroupGroupIdThingsThingIdPostError = AddThingToGroupRouteGroupGroupIdThingsThingIdPostErrors[keyof AddThingToGroupRouteGroupGroupIdThingsThingIdPostErrors]; + +export type AddThingToGroupRouteGroupGroupIdThingsThingIdPostResponses = { + /** + * Successful Response + */ + 201: unknown; +}; + export type DeleteGroupGroupGroupIdDeleteData = { body?: never; path: { @@ -6787,6 +7210,86 @@ export type SearchApiSearchGetResponses = { export type SearchApiSearchGetResponse = SearchApiSearchGetResponses[keyof SearchApiSearchGetResponses]; +export type GetGeothermalWellsThingGeothermalWellGetData = { + body?: never; + path?: never; + query?: { + /** + * County + */ + county?: string | null; + /** + * Name Contains + */ + name_contains?: string | null; + /** + * Q + * + * Free-text search across well name, API, well number, operator and county. Whitespace-separated words are ANDed, so each word added narrows the result. Case-insensitive substring match. + */ + q?: string | null; + /** + * Page + * + * Page number + */ + page?: number; + /** + * Size + */ + size?: number; + }; + url: '/thing/geothermal-well'; +}; + +export type GetGeothermalWellsThingGeothermalWellGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetGeothermalWellsThingGeothermalWellGetError = GetGeothermalWellsThingGeothermalWellGetErrors[keyof GetGeothermalWellsThingGeothermalWellGetErrors]; + +export type GetGeothermalWellsThingGeothermalWellGetResponses = { + /** + * Successful Response + */ + 200: PageGeothermalWellResponse; +}; + +export type GetGeothermalWellsThingGeothermalWellGetResponse = GetGeothermalWellsThingGeothermalWellGetResponses[keyof GetGeothermalWellsThingGeothermalWellGetResponses]; + +export type GetGeothermalWellThingGeothermalWellWellDataIdGetData = { + body?: never; + path: { + /** + * Well Data Id + */ + well_data_id: string; + }; + query?: never; + url: '/thing/geothermal-well/{well_data_id}'; +}; + +export type GetGeothermalWellThingGeothermalWellWellDataIdGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetGeothermalWellThingGeothermalWellWellDataIdGetError = GetGeothermalWellThingGeothermalWellWellDataIdGetErrors[keyof GetGeothermalWellThingGeothermalWellWellDataIdGetErrors]; + +export type GetGeothermalWellThingGeothermalWellWellDataIdGetResponses = { + /** + * Successful Response + */ + 200: GeothermalWellResponse; +}; + +export type GetGeothermalWellThingGeothermalWellWellDataIdGetResponse = GetGeothermalWellThingGeothermalWellWellDataIdGetResponses[keyof GetGeothermalWellThingGeothermalWellWellDataIdGetResponses]; + export type GetWaterWellsThingWaterWellGetData = { body?: never; path?: never; @@ -6802,7 +7305,7 @@ export type GetWaterWellsThingWaterWellGetData = { /** * Filter */ - filter?: string; + filter?: Array | null; /** * Query */ @@ -6811,6 +7314,10 @@ export type GetWaterWellsThingWaterWellGetData = { * Name */ name?: string | null; + /** + * Name Contains + */ + name_contains?: string | null; /** * Include Contacts */ @@ -7148,11 +7655,15 @@ export type GetSpringsThingSpringGetData = { /** * Filter */ - filter?: string; + filter?: Array | null; /** * Query */ query?: string; + /** + * Name Contains + */ + name_contains?: string | null; /** * Page * @@ -7460,7 +7971,11 @@ export type GetThingsThingGetData = { /** * Filter */ - filter?: string; + filter?: Array | null; + /** + * Name Contains + */ + name_contains?: string | null; /** * Page * @@ -7778,3 +8293,33 @@ export type ReadNgwmnLithologyNgwmnLithologyPointidGetResponses = { */ 200: unknown; }; + +export type CreateFeedbackFeedbackPostData = { + body: FeedbackCreate; + path?: never; + query?: { + /** + * User + */ + _user?: unknown; + }; + url: '/feedback'; +}; + +export type CreateFeedbackFeedbackPostErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type CreateFeedbackFeedbackPostError = CreateFeedbackFeedbackPostErrors[keyof CreateFeedbackFeedbackPostErrors]; + +export type CreateFeedbackFeedbackPostResponses = { + /** + * Successful Response + */ + 200: FeedbackResponse; +}; + +export type CreateFeedbackFeedbackPostResponse = CreateFeedbackFeedbackPostResponses[keyof CreateFeedbackFeedbackPostResponses]; diff --git a/src/generated/zod.gen.ts b/src/generated/zod.gen.ts index 88b206a2..506f1414 100644 --- a/src/generated/zod.gen.ts +++ b/src/generated/zod.gen.ts @@ -57,6 +57,27 @@ export const zAddressResponse = z.object({ address_type: zAddressType }); +/** + * AssetAssociationResponse + */ +export const zAssetAssociationResponse = z.object({ + asset_id: z.int(), + thing_id: z.optional(z.union([ + z.int(), + z.null() + ])) +}); + +/** + * AssetAssociationUpdate + */ +export const zAssetAssociationUpdate = z.object({ + thing_id: z.optional(z.union([ + z.int(), + z.null() + ])) +}); + /** * AssetResponse */ @@ -105,6 +126,22 @@ export const zBodyBulkUploadGroundwaterLevelsObservationGroundwaterLevelBulkUplo file: z.string() }); +/** + * Body_upload_and_record_asset_asset_upload_and_record_post + */ +export const zBodyUploadAndRecordAssetAssetUploadAndRecordPost = z.object({ + file: z.string(), + thing_id: z.int(), + label: z.optional(z.union([ + z.string(), + z.null() + ])), + name: z.optional(z.union([ + z.string(), + z.null() + ])) +}); + /** * Body_upload_asset_asset_upload_post */ @@ -1466,6 +1503,58 @@ export const zFeatureCollectionResponse = z.object({ features: z.optional(z.array(zFeature)).default([]) }); +/** + * FeedbackCreate + */ +export const zFeedbackCreate = z.object({ + type: z.enum([ + 'bug', + 'feature' + ]), + page_url: z.string(), + reporter_name: z.optional(z.union([ + z.string(), + z.null() + ])), + reporter_email: z.optional(z.union([ + z.string(), + z.null() + ])), + browser: z.optional(z.union([ + z.string(), + z.null() + ])), + submitted_at: z.optional(z.union([ + z.string(), + z.null() + ])), + what_happened: z.optional(z.union([ + z.string(), + z.null() + ])), + severity: z.optional(z.string()).default('Low'), + problem: z.optional(z.union([ + z.string(), + z.null() + ])), + who_would_use: z.optional(z.union([ + z.string(), + z.null() + ])), + what_it_should_do: z.optional(z.union([ + z.string(), + z.null() + ])) +}); + +/** + * FeedbackResponse + */ +export const zFeedbackResponse = z.object({ + jira_key: z.string(), + jira_url: z.string() +}); + /** * activity_type */ @@ -1587,6 +1676,87 @@ export const zGeoJsonProperties = z.object({ ])) }); +/** + * GeothermalWellResponse + * + * Read model for a geothermal well sourced from the legacy NM_Wells mirror. + * + * NOTE: This currently reads directly from the ``NMW_WellHeaders`` / + * ``NMW_WellLocations`` staging tables (see ``db/nmw_legacy.py``). Once the + * NM_Wells -> Ocotillo transform lands, these rows will be backed by the + * ``thing`` table and ``thing_id`` will be populated. Until then ``thing_id`` + * is always ``None`` and ``well_data_id`` (legacy GUID) is the identifier. + */ +export const zGeothermalWellResponse = z.object({ + well_data_id: z.uuid(), + thing_id: z.optional(z.union([ + z.int(), + z.null() + ])), + api: z.optional(z.union([ + z.string(), + z.null() + ])), + name: z.optional(z.union([ + z.string(), + z.null() + ])), + well_number: z.optional(z.union([ + z.string(), + z.null() + ])), + well_class: z.optional(z.union([ + z.string(), + z.null() + ])), + well_type: z.optional(z.union([ + z.string(), + z.null() + ])), + status: z.optional(z.union([ + z.string(), + z.null() + ])), + operator: z.optional(z.union([ + z.string(), + z.null() + ])), + owner: z.optional(z.union([ + z.string(), + z.null() + ])), + total_depth: z.optional(z.union([ + z.number(), + z.null() + ])), + completion_date: z.optional(z.union([ + z.iso.datetime({ + offset: true + }), + z.null() + ])), + has_geothermal_data: z.optional(z.union([ + z.boolean(), + z.null() + ])), + county: z.optional(z.union([ + z.string(), + z.null() + ])), + state: z.optional(z.union([ + z.string(), + z.null() + ])), + latitude: z.optional(z.union([ + z.number(), + z.null() + ])), + longitude: z.optional(z.union([ + z.number(), + z.null() + ])) +}); + /** * parameter_name */ @@ -1820,7 +1990,8 @@ export const zGroupResponse = z.object({ parent_group_id: z.union([ z.int(), z.null() - ]) + ]), + well_count: z.optional(z.int()).default(0) }); /** @@ -2065,6 +2236,17 @@ export const zPageEmailResponse = z.object({ pages: z.int().gte(0) }); +/** + * Page[GeothermalWellResponse] + */ +export const zPageGeothermalWellResponse = z.object({ + items: z.array(zGeothermalWellResponse), + total: z.int().gte(0), + page: z.int().gte(1), + size: z.int().gte(1), + pages: z.int().gte(0) +}); + /** * Page[GroundwaterLevelObservationResponse] */ @@ -2177,12 +2359,15 @@ export const zOrganization = z.enum([ 'Pena Blanca Water & Sanitation District', 'Town of Questa', 'Town of Cerro', + 'Cerro MDWCA', 'Farr Cattle Company', 'Carrizozo Orchard', + 'White Oaks Pottery', 'USFS, Kiowa Grasslands', 'Cloud Country West Subdivision', 'Chama West WUA', 'El Rito Regional Water and Waste Water Association', + 'El Rito MDWCA', 'West Rim MDWUA', 'Village of Willard', 'Quemado Municipal Water & SWA', @@ -2349,6 +2534,7 @@ export const zOrganization = z.enum([ 'Land Ventures LLC', 'Las Lagunitas', 'Las Lagunitas HOA', + 'Lightning Dock Zanskar', 'Living World Ministries', 'Los Atrevidos, Inc', 'Los Prados HOA', @@ -2389,6 +2575,8 @@ export const zOrganization = z.enum([ 'Sierra Grande Lodge', 'Sierra Vista Retirement Community', 'Slash Triangle Ranch', + 'Spanish Stirrup Rockshop', + 'Sparrowhawk Farm', 'Stagecoach Motel', 'State of New Mexico', 'Stephenson Ranch', @@ -2410,6 +2598,7 @@ export const zOrganization = z.enum([ 'US Bureau of Indian Affairs, Santa Fe Indian School', 'USFS, Carson NF, Taos Office', 'USFS, Cibola NF, Magdalena Ranger District', + "USFS, Cibola NF, Supervisor's Office", 'USFS, Santa Fe NF, Espanola Ranger District', 'Ute Mountain Farms', 'VA Hospital', @@ -2440,6 +2629,9 @@ export const zOrganization = z.enum([ 'Los Ojos Mutual Domestic', 'The Nature Conservancy (TNC)', 'Smith Ranch LLC', + 'Santa Ana Pueblo Department of Natural Resources', + 'Village of Hope', + 'WSP', 'Zia Pueblo', 'Our Lady of Guadalupe (OLG)', 'PLSS' @@ -3869,6 +4061,12 @@ export const zWellExportResponse = z.object({ deployments: z.optional(z.array(zDeploymentResponse)) }); +export const zHealthHealthGetData = z.object({ + body: z.optional(z.never()), + path: z.optional(z.never()), + query: z.optional(z.never()) +}); + export const zUploadAssetAssetUploadPostData = z.object({ body: zBodyUploadAssetAssetUploadPost, path: z.optional(z.never()), @@ -3882,6 +4080,17 @@ export const zUploadAssetAssetUploadPostData = z.object({ */ export const zUploadAssetAssetUploadPostResponse = z.record(z.string(), z.unknown()); +export const zUploadAndRecordAssetAssetUploadAndRecordPostData = z.object({ + body: zBodyUploadAndRecordAssetAssetUploadAndRecordPost, + path: z.optional(z.never()), + query: z.optional(z.never()) +}); + +/** + * Successful Response + */ +export const zUploadAndRecordAssetAssetUploadAndRecordPostResponse = zAssetResponse; + export const zListAssetsAssetGetData = z.object({ body: z.optional(z.never()), path: z.optional(z.never()), @@ -3908,6 +4117,20 @@ export const zAddAssetAssetPostData = z.object({ */ export const zAddAssetAssetPostResponse = zAssetResponse; +export const zListUnassociatedAssetsAssetUnassociatedGetData = z.object({ + body: z.optional(z.never()), + path: z.optional(z.never()), + query: z.optional(z.object({ + page: z.optional(z.int().gte(1)).default(1), + size: z.optional(z.int().gte(1).lte(10000)).default(25) + })) +}); + +/** + * Successful Response + */ +export const zListUnassociatedAssetsAssetUnassociatedGetResponse = zPageAssetResponse; + export const zDeleteAssetAssetAssetIdDeleteData = z.object({ body: z.optional(z.never()), path: z.object({ @@ -3942,6 +4165,19 @@ export const zUpdateAssetAssetAssetIdPatchData = z.object({ query: z.optional(z.never()) }); +export const zUpdateAssetThingAssociationAssetAssetIdAssociationPatchData = z.object({ + body: zAssetAssociationUpdate, + path: z.object({ + asset_id: z.int() + }), + query: z.optional(z.never()) +}); + +/** + * Successful Response + */ +export const zUpdateAssetThingAssociationAssetAssetIdAssociationPatchResponse = zAssetAssociationResponse; + export const zRemoveAssetAssetAssetIdRemoveDeleteData = z.object({ body: z.optional(z.never()), path: z.object({ @@ -3976,7 +4212,10 @@ export const zGetContactsContactGetData = z.object({ query: z.optional(z.object({ sort: z.optional(z.string()), order: z.optional(z.string()), - filter: z.optional(z.string()), + filter: z.optional(z.union([ + z.array(z.string()), + z.null() + ])), thing_id: z.optional(z.union([ z.int(), z.null() @@ -4261,6 +4500,17 @@ export const zGetContactAddressesContactContactIdAddressGetData = z.object({ */ export const zGetContactAddressesContactContactIdAddressGetResponse = zPageAddressResponse; +export const zGetDisclaimerDisclaimerGetData = z.object({ + body: z.optional(z.never()), + path: z.optional(z.never()), + query: z.optional(z.object({ + f: z.optional(z.union([ + z.string(), + z.null() + ])) + })) +}); + export const zGetGeospatialGeospatialGetData = z.object({ body: z.optional(z.never()), path: z.optional(z.never()), @@ -4313,6 +4563,29 @@ export const zCreateGroupGroupPostData = z.object({ */ export const zCreateGroupGroupPostResponse = zGroupResponse; +export const zRemoveThingFromGroupRouteGroupGroupIdThingsThingIdDeleteData = z.object({ + body: z.optional(z.never()), + path: z.object({ + group_id: z.int(), + thing_id: z.int() + }), + query: z.optional(z.never()) +}); + +/** + * Successful Response + */ +export const zRemoveThingFromGroupRouteGroupGroupIdThingsThingIdDeleteResponse = z.void(); + +export const zAddThingToGroupRouteGroupGroupIdThingsThingIdPostData = z.object({ + body: z.optional(z.never()), + path: z.object({ + group_id: z.int(), + thing_id: z.int() + }), + query: z.optional(z.never()) +}); + export const zDeleteGroupGroupGroupIdDeleteData = z.object({ body: z.optional(z.never()), path: z.object({ @@ -5086,6 +5359,45 @@ export const zSearchApiSearchGetData = z.object({ */ export const zSearchApiSearchGetResponse = zPageDict; +export const zGetGeothermalWellsThingGeothermalWellGetData = z.object({ + body: z.optional(z.never()), + path: z.optional(z.never()), + query: z.optional(z.object({ + county: z.optional(z.union([ + z.string(), + z.null() + ])), + name_contains: z.optional(z.union([ + z.string(), + z.null() + ])), + q: z.optional(z.union([ + z.string(), + z.null() + ])), + page: z.optional(z.int().gte(1)).default(1), + size: z.optional(z.int().gte(1).lte(10000)).default(25) + })) +}); + +/** + * Successful Response + */ +export const zGetGeothermalWellsThingGeothermalWellGetResponse = zPageGeothermalWellResponse; + +export const zGetGeothermalWellThingGeothermalWellWellDataIdGetData = z.object({ + body: z.optional(z.never()), + path: z.object({ + well_data_id: z.uuid() + }), + query: z.optional(z.never()) +}); + +/** + * Successful Response + */ +export const zGetGeothermalWellThingGeothermalWellWellDataIdGetResponse = zGeothermalWellResponse; + export const zGetWaterWellsThingWaterWellGetData = z.object({ body: z.optional(z.never()), path: z.optional(z.never()), @@ -5098,7 +5410,10 @@ export const zGetWaterWellsThingWaterWellGetData = z.object({ z.string(), z.null() ])), - filter: z.optional(z.string()), + filter: z.optional(z.union([ + z.array(z.string()), + z.null() + ])), query: z.optional(z.union([ z.string(), z.null() @@ -5107,6 +5422,10 @@ export const zGetWaterWellsThingWaterWellGetData = z.object({ z.string(), z.null() ])), + name_contains: z.optional(z.union([ + z.string(), + z.null() + ])), include_contacts: z.optional(z.boolean()).default(false), page: z.optional(z.int().gte(1)).default(1), size: z.optional(z.int().gte(1).lte(10000)).default(25) @@ -5244,8 +5563,15 @@ export const zGetSpringsThingSpringGetData = z.object({ query: z.optional(z.object({ sort: z.optional(z.string()), order: z.optional(z.string()), - filter: z.optional(z.string()), + filter: z.optional(z.union([ + z.array(z.string()), + z.null() + ])), query: z.optional(z.string()), + name_contains: z.optional(z.union([ + z.string(), + z.null() + ])), page: z.optional(z.int().gte(1)).default(1), size: z.optional(z.int().gte(1).lte(10000)).default(25) })) @@ -5381,7 +5707,14 @@ export const zGetThingsThingGetData = z.object({ z.null() ])), include_contacts: z.optional(z.boolean()).default(false), - filter: z.optional(z.string()), + filter: z.optional(z.union([ + z.array(z.string()), + z.null() + ])), + name_contains: z.optional(z.union([ + z.string(), + z.null() + ])), page: z.optional(z.int().gte(1)).default(1), size: z.optional(z.int().gte(1).lte(10000)).default(25) })) @@ -5499,3 +5832,16 @@ export const zReadNgwmnLithologyNgwmnLithologyPointidGetData = z.object({ }), query: z.optional(z.never()) }); + +export const zCreateFeedbackFeedbackPostData = z.object({ + body: zFeedbackCreate, + path: z.optional(z.never()), + query: z.optional(z.object({ + _user: z.optional(z.unknown()) + })) +}); + +/** + * Successful Response + */ +export const zCreateFeedbackFeedbackPostResponse = zFeedbackResponse;