RigInboundGateway.ApiProxy.Api (Reactive Interaction Gateway v3.0.0-alpha.2) View Source

Service definitions for the proxy.

Link to this section Summary

Link to this section Types

Specs

api_list() :: [t()]

Specs

endpoint() :: %{
  optional(:secured) => boolean(),
  optional(:transform_request_headers) => boolean(),
  optional(:target) => String.t(),
  optional(:topic) => String.t(),
  optional(:schema) => String.t(),
  optional(:response_from) => String.t(),
  :id => String.t(),
  :path_regex => String.t(),
  :path_replacement => String.t(),
  :method => String.t()
}

Specs

endpoint_match() :: {t(), endpoint(), request_path :: String.t()}

Specs

t() :: %{
  optional(:auth_type) => String.t(),
  optional(:versioned) => boolean(),
  optional(:active) => boolean(),
  optional(:node_name) => atom(),
  optional(:ref_number) => integer(),
  optional(:timestamp) => DateTime,
  optional(:transform_request_headers) => %{
    optional(:add_headers) => %{optional(String.t()) => String.t()}
  },
  :id => String.t(),
  :name => String.t(),
  :auth => %{
    optional(:use_header) => boolean(),
    optional(:header_name) => String.t(),
    optional(:use_query) => boolean(),
    optional(:query_name) => String.t()
  },
  :version_data => %{optional(String.t()) => %{endpoints: [endpoint()]}},
  :proxy => %{
    optional(:use_env) => boolean(),
    :target_url => String.t(),
    :port => integer()
  }
}

Link to this section Functions

Specs

filter(api_list(), Plug.Conn.t()) :: [endpoint_match()]