generalized_tables:
  # etldoc: osm_border_linestring -> osm_border_disp_linestring
  border_disp_linestring:
    source: border_linestring
    sql_filter: ST_GeometryType(geometry) = 'ST_LineString' AND (disputed OR dispute OR border_status = 'disputed' OR disputed_by <> '') AND admin_level = 2

tables:
  # etldoc: imposm3 -> osm_border_linestring
  border_linestring:
    type: relation_member
    filters:
      require:
        admin_level: [__any__]
        boundary: [administrative]
    columns:
    - name: relation_id
      type: id
    - name: osm_id
      type: id
      from_member: true
    - name: member
      type: member_id
    - name: type
      type: member_type
    - name: geometry
      type: geometry
    - key: name
      name: name
      type: string
      # Used for disputed boundary, e.g. "Line of actual control"
      from_member: true
    - key: admin_level
      name: admin_level
      type: integer
    - key: claimed_by
      name: claimed_by
      type: string
    - key: disputed_by
      name: disputed_by
      type: string
      from_member: true
    - key: dispute 
      name: dispute 
      type: bool
      from_member: true
    - key: disputed
      name: disputed
      type: bool
      from_member: true
    - key: border_status
      name: border_status
      type: string
      from_member: true
    - key: maritime
      name: maritime
      type: bool
      from_member: true
    - key: boundary_type
      name: boundary_type
      type: string
      from_member: true
    - key: natural
      name: natural
      type: string
      from_member: true
    relation_types: [boundary]
    mapping:
      boundary:
      - administrative
      border_status:
      - dispute
      boundary_type:
      - maritime
