# NOTE: This file is auto generated by OpenAPI Generator 7.1.0 (https://openapi-generator.tech). # Do not edit this file manually. defmodule MBTA.Api.Facility do @moduledoc """ API calls for all endpoints tagged `Facility`. """ alias MBTA.Connection import MBTA.RequestBuilder @doc """ List Escalators and Elevators Amenities at a station stop (`/data/relationships/stop`) such as elevators, escalators, parking lots, and bike storage. An [MBTA extension](https://groups.google.com/forum/#!topic/gtfs-changes/EzC5m9k45pA). This spec is not yet finalized. ## Accessibility Riders with limited mobility can search any facility, either `ELEVATOR` or `ESCALATOR`, while riders that need wheelchair access can search for `ELEVATOR` only. The lack of an `ELEVATOR` MAY NOT make a stop wheelchair inaccessible. Riders should check `/stops/{id}` `/data/attributes/wheelchair_boarding` is `1` to guarantee a path is available from the station entrance to the stop or `0` if it MAY be accessible. Completely avoid `2` as that is guaranteed to be INACCESSIBLE. ### Parameters - `connection` (MBTA.Connection): Connection to server - `opts` (keyword): Optional parameters - `:"page[offset]"` (integer()): Offset (0-based) of first element in the page - `:"page[limit]"` (integer()): Max number of elements to return - `:sort` (String.t): Results can be [sorted](http://jsonapi.org/format/#fetching-sorting) by the id or any `/data/{index}/attributes` key. Assumes ascending; may be prefixed with '-' for descending | JSON pointer | Direction | `sort` | |--------------|-----------|------------| | `/data/{index}/attributes/latitude` | ascending | `latitude` | | `/data/{index}/attributes/latitude` | descending | `-latitude` | | `/data/{index}/attributes/long_name` | ascending | `long_name` | | `/data/{index}/attributes/long_name` | descending | `-long_name` | | `/data/{index}/attributes/longitude` | ascending | `longitude` | | `/data/{index}/attributes/longitude` | descending | `-longitude` | | `/data/{index}/attributes/properties` | ascending | `properties` | | `/data/{index}/attributes/properties` | descending | `-properties` | | `/data/{index}/attributes/short_name` | ascending | `short_name` | | `/data/{index}/attributes/short_name` | descending | `-short_name` | | `/data/{index}/attributes/type` | ascending | `type` | | `/data/{index}/attributes/type` | descending | `-type` | - `:"fields[facility]"` (String.t): Fields to include with the response. Multiple fields **MUST** be a comma-separated (U+002C COMMA, \",\") list. Note that fields can also be selected for included data types: see the [V3 API Best Practices](https://www.mbta.com/developers/v3-api/best-practices) for an example. - `:include` (String.t): Relationships to include. * `stop` The value of the include parameter **MUST** be a comma-separated (U+002C COMMA, \",\") list of relationship paths. A relationship path is a dot-separated (U+002E FULL-STOP, \".\") list of relationship names. [JSONAPI \"include\" behavior](http://jsonapi.org/format/#fetching-includes) - `:"filter[stop]"` (String.t): Filter by `/data/{index}/relationships/stop/data/id`. Multiple IDs **MUST** be a comma-separated (U+002C COMMA, \",\") list. - `:"filter[type]"` (String.t): Filter by type. Multiple types **MUST** be a comma-separated (U+002C COMMA, \",\") list. ### Returns - `{:ok, MBTA.Model.Facilities.t}` on success - `{:error, Tesla.Env.t}` on failure """ @spec api_web_facility_controller_index(Tesla.Env.client, keyword()) :: {:ok, MBTA.Model.Forbidden.t} | {:ok, MBTA.Model.TooManyRequests.t} | {:ok, MBTA.Model.Facilities.t} | {:ok, MBTA.Model.BadRequest.t} | {:error, Tesla.Env.t} def api_web_facility_controller_index(connection, opts \\ []) do optional_params = %{ :"page[offset]" => :query, :"page[limit]" => :query, :sort => :query, :"fields[facility]" => :query, :include => :query, :"filter[stop]" => :query, :"filter[type]" => :query } request = %{} |> method(:get) |> url("/facilities") |> add_optional_params(optional_params, opts) |> Enum.into([]) connection |> Connection.request(request) |> evaluate_response([ {429, MBTA.Model.TooManyRequests}, {403, MBTA.Model.Forbidden}, {400, MBTA.Model.BadRequest}, {200, MBTA.Model.Facilities} ]) end @doc """ Specific Escalator or Elevator Amenities at a station stop (`/data/{index}/relationships/stop`) such as elevators, escalators, parking lots, and bike storage. An [MBTA extension](https://groups.google.com/forum/#!topic/gtfs-changes/EzC5m9k45pA). This spec is not yet finalized. ## Accessibility Riders with limited mobility can search any facility, either `ELEVATOR` or `ESCALATOR`, while riders that need wheelchair access can search for `ELEVATOR` only. The lack of an `ELEVATOR` MAY NOT make a stop wheelchair inaccessible. Riders should check `/stops/{id}` `/data/attributes/wheelchair_boarding` is `1` to guarantee a path is available from the station entrance to the stop or `0` if it MAY be accessible. Completely avoid `2` as that is guaranteed to be INACCESSIBLE. ### Parameters - `connection` (MBTA.Connection): Connection to server - `id` (String.t): Unique identifier for facility - `opts` (keyword): Optional parameters - `:"fields[facility]"` (String.t): Fields to include with the response. Multiple fields **MUST** be a comma-separated (U+002C COMMA, \",\") list. Note that fields can also be selected for included data types: see the [V3 API Best Practices](https://www.mbta.com/developers/v3-api/best-practices) for an example. - `:include` (String.t): Relationships to include. * `stop` The value of the include parameter **MUST** be a comma-separated (U+002C COMMA, \",\") list of relationship paths. A relationship path is a dot-separated (U+002E FULL-STOP, \".\") list of relationship names. [JSONAPI \"include\" behavior](http://jsonapi.org/format/#fetching-includes) ### Returns - `{:ok, MBTA.Model.Facility.t}` on success - `{:error, Tesla.Env.t}` on failure """ @spec api_web_facility_controller_show(Tesla.Env.client, String.t, keyword()) :: {:ok, MBTA.Model.NotAcceptable.t} | {:ok, MBTA.Model.Forbidden.t} | {:ok, MBTA.Model.TooManyRequests.t} | {:ok, MBTA.Model.Facility.t} | {:ok, MBTA.Model.NotFound.t} | {:error, Tesla.Env.t} def api_web_facility_controller_show(connection, id, opts \\ []) do optional_params = %{ :"fields[facility]" => :query, :include => :query } request = %{} |> method(:get) |> url("/facilities/#{id}") |> add_optional_params(optional_params, opts) |> Enum.into([]) connection |> Connection.request(request) |> evaluate_response([ {429, MBTA.Model.TooManyRequests}, {406, MBTA.Model.NotAcceptable}, {404, MBTA.Model.NotFound}, {403, MBTA.Model.Forbidden}, {200, MBTA.Model.Facility} ]) end end