@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Groundwater Wells, Aquifers and Registry API
@base https://apps.nrs.gov.bc.ca/gwells/api/v1/
@version v1
@auth ApiKey JWT in header
@endpoints 24
@hint download_for_search
@toc aquifer-codes(7), aquifers(4), cities(2), config(1), drillers(3), keycloak(1), submissions(1), surveys(1), wells(4)

@group aquifer-codes
@endpoint GET /aquifer-codes/demand/
@optional {limit: int, offset: int}
@returns(200) {count: int, next: str(uri), previous: str(uri), results: [map]}

@endpoint GET /aquifer-codes/materials/
@optional {limit: int, offset: int}
@returns(200) {count: int, next: str(uri), previous: str(uri), results: [map]}

@endpoint GET /aquifer-codes/productivity/
@optional {limit: int, offset: int}
@returns(200) {count: int, next: str(uri), previous: str(uri), results: [map]}

@endpoint GET /aquifer-codes/quality-concerns/
@optional {limit: int, offset: int}
@returns(200) {count: int, next: str(uri), previous: str(uri), results: [map]}

@endpoint GET /aquifer-codes/subtypes/
@optional {limit: int, offset: int}
@returns(200) {count: int, next: str(uri), previous: str(uri), results: [map]}

@endpoint GET /aquifer-codes/vulnerability/
@optional {limit: int, offset: int}
@returns(200) {count: int, next: str(uri), previous: str(uri), results: [map]}

@endpoint GET /aquifer-codes/water-use/
@optional {limit: int, offset: int}
@returns(200) {count: int, next: str(uri), previous: str(uri), results: [map]}

@endgroup

@group aquifers
@endpoint GET /aquifers/
@optional {aquifer_id: num, ordering: str, search: str, limit: int, offset: int}
@returns(200) {count: int, next: str(uri), previous: str(uri), results: [map]}

@endpoint GET /aquifers/names/
@optional {search: str}
@returns(200)

@endpoint GET /aquifers/{aquifer_id}/
@returns(200) {aquifer_id: int, aquifer_name: str, area: str(decimal), demand_description: str, demand: str, known_water_use_description: str, known_water_use: str, litho_stratographic_unit: str, location_description: str, mapping_year: int, material_description: str, material: str, notes: str, productivity_description: str, productivity: str, quality_concern_description: str, quality_concern: str, subtype_description: str, subtype: str, vulnerability_description: str, vulnerability: str}

@endpoint GET /aquifers/{aquifer_id}/files
@returns(200) {public: [map], private: [map]}

@endgroup

@group cities
@endpoint GET /cities/drillers/
@returns(200)

@endpoint GET /cities/installers/
@returns(200)

@endgroup

@group config
@endpoint GET /config
@returns(200)

@endgroup

@group drillers
@endpoint GET /drillers/
@optional {search: str, ordering: str, limit: int, offset: int}
@returns(200)

@endpoint GET /drillers/names/
@optional {search: str}
@returns(200)

@endpoint GET /drillers/{person_guid}/files/
@returns(200) {public: [map], private: [map]}

@endgroup

@group keycloak
@endpoint GET /keycloak
@returns(200)

@endgroup

@group submissions
@endpoint GET /submissions/options/
@returns(200)

@endgroup

@group surveys
@endpoint GET /surveys/
@returns(200)

@endgroup

@group wells
@endpoint GET /wells/
@optional {limit: int, offset: int}
@returns(200) {count: int, next: str(uri), previous: str(uri), results: [map]}

@endpoint GET /wells/tags/
@optional {search: str, ordering: str}
@returns(200)

@endpoint GET /wells/{tag}/files
@returns(200) {public: [map], private: [map]}

@endpoint GET /wells/{well_tag_number}
@returns(200) {well_guid: str(uuid), well: int, well_tag_number: int, identification_plate_number: int, owner_full_name: str, well_class: str, well_subclass: str(uuid), intended_water_use: str, well_status: str, licenced_status: str, street_address: str, city: str, legal_lot: str, legal_plan: str, legal_district_lot: str, legal_block: str, legal_section: str, legal_township: str, legal_range: str, land_district: str, legal_pid: int, well_location_description: str, construction_start_date: str(date), construction_end_date: str(date), alteration_end_date: str(date), decommission_start_date: str(date), decommission_end_date: str(date), person_responsible: map{person_guid: str(uuid), name: str}, company_of_person_responsible: map{org_guid: str(uuid), name: str, org_verbose_name: str}, drilling_company: str(uuid), well_identification_plate_attached: str, id_plate_attached_by: str, water_supply_system_name: str, water_supply_system_well_name: str, latitude: str(decimal), longitude: str(decimal), coordinate_acquisition_code: str, ground_elevation: str(decimal), ground_elevation_method: str, drilling_method: str, other_drilling_method: str, well_orientation: bool, surface_seal_material: str, surface_seal_length: str(decimal), surface_seal_thickness: str(decimal), surface_seal_method: str, surface_seal_depth: str(decimal), backfill_type: str, backfill_depth: str(decimal), liner_material: str, liner_diameter: str(decimal), liner_thickness: str(decimal), liner_from: str(decimal), liner_to: str(decimal), screen_intake_method: str, screen_type: str, screen_material: str, other_screen_material: str, screen_opening: str, screen_bottom: str, other_screen_bottom: str, screen_information: str, filter_pack_from: str(decimal), filter_pack_to: str(decimal), filter_pack_thickness: str(decimal), filter_pack_material: str, filter_pack_material_size: str, development_method: str, development_hours: str(decimal), development_notes: str, water_quality_characteristics: [str], water_quality_colour: str, water_quality_odour: str, total_depth_drilled: str(decimal), finished_well_depth: str(decimal), final_casing_stick_up: str(decimal), bedrock_depth: str(decimal), static_water_level: str(decimal), well_yield: str(decimal), artesian_flow: str(decimal), artesian_pressure: str(decimal), well_cap_type: str, well_disinfected: bool, comments: str, alternative_specs_submitted: bool, well_yield_unit: str, diameter: str, observation_well_number: str, observation_well_status: str, ems: str, aquifer: int, utm_zone_code: str, utm_northing: int, utm_easting: int, bcgs_id: int, decommission_reason: str, decommission_method: str, sealant_material: str, backfill_material: str, decommission_details: str, aquifer_vulnerability_index: str(decimal), storativity: str(decimal), transmissivity: str(decimal), hydraulic_conductivity: str, specific_storage: str, specific_yield: str(decimal), testing_method: str, testing_duration: int, analytic_solution_type: str(decimal), boundary_effect: str(decimal), yield_estimation_method: str, yield_estimation_rate: str(decimal), yield_estimation_duration: str(decimal), static_level_before_test: str(decimal), drawdown: str(decimal), hydro_fracturing_performed: bool, hydro_fracturing_yield_increase: str(decimal), recommended_pump_depth: str(decimal), recommended_pump_rate: str(decimal), casing_set: [map], screen_set: [map], linerperforation_set: [map], decommission_description_set: [map], lithologydescription_set: [map]}

@endgroup

@end
