DigitalOcean.LoadBalancer (digital_ocean v0.3.0)

Link to this section Summary

Functions

Add droplets to a load balancer.

Add forwarding rules to a load balancer.

Create a load balancer.

Delete a load balancer.

Retrieve a load balancer.

Retrieve a list of load balancers.

Remove droplets from a load balancer.

Remove forwarding rules from a load b balancer.

Update a load balancer.

Link to this section Functions

Link to this function

add_droplets(load_balancer_id, opts)

Specs

add_droplets(String.t(), Keyword.t()) :: DigitalOcean.Operation.t()

Add droplets to a load balancer.

Examples

iex> DigitalOcean.LoadBalancer.add_droplets(
...>   "4de7ac8b-495b-4884-9a69-1050c6793cd6",
...>   droplet_ids: [
...>     3164446,
...>     3164447
...>   ]
...> ) |> DigitalOcean.request()
{ :ok, %DigitalOcean.Operation{} }
Link to this function

add_forwarding_rules(load_balancer_id, opts)

Specs

add_forwarding_rules(String.t(), Keyword.t()) :: DigitalOcean.Operation.t()

Add forwarding rules to a load balancer.

Examples

iex> DigitalOcean.LoadBalancer.add_forwarding_rules(
...>   "4de7ac8b-495b-4884-9a69-1050c6793cd6",
...>   forwarding_rules: [
...>     %{
...>       entry_protocol: "tcp",
...>       entry_port: 3306,
...>       target_protocol: "tcp",
...>       target_port: 3306
...>     }
...>   ]
...> ) |> DigitalOcean.request()
{ :ok, %DigitalOcean.Operation{} }

Specs

Create a load balancer.

Examples

iex> DigitalOcean.LoadBalancer.create(
...>   name: "example-lb-01",
...>   region: "nyc3",
...>   forwarding_rules: [
...>     %{
...>       entry_protocol: "http",
...>       entry_port: 80,
...>       target_port: 80,
...>       certificate_id: "",
...>       tls_passthrough: false
...>     }
...>   ],
...>   health_check: %{
...>     protocol: "http",
...>     port: 80,
...>     path: "/",
...>     check_interval_seconds: 10,
...>     response_timeout_seconds: 5,
...>     healthy_threshold: 5,
...>     unhealthy_threshold: 3
...>   },
...>   sticky_sessions: %{
...>     type: "none"
...>   },
...>   droplet_ids: [
...>     3164444,
...>     3164445
...>   ]
...> ) |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
Link to this function

delete(load_balancer_id)

Specs

Delete a load balancer.

Examples

iex> DigitalOcean.LoadBalancer.delete("4de7ac8b-495b-4884-9a69-1050c6793cd6") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
Link to this function

get(load_balancer_id)

Specs

Retrieve a load balancer.

Examples

iex> DigitalOcean.LoadBalancer.get("4de7ac8b-495b-4884-9a69-1050c6793cd6") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
Link to this function

list(opts \\ [])

Specs

Retrieve a list of load balancers.

Examples

iex> DigitalOcean.LoadBalancer.list() |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
Link to this function

remove_droplets(load_balancer_id, opts)

Specs

remove_droplets(String.t(), Keyword.t()) :: DigitalOcean.Operation.t()

Remove droplets from a load balancer.

Examples

iex> DigitalOcean.LoadBalancer.remove_droplets(
...>   "4de7ac8b-495b-4884-9a69-1050c6793cd6",
...>   droplet_ids: [
...>     3164446,
...>     3164447
...>   ]
...> ) |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
Link to this function

remove_forwarding_rules(load_balancer_id, opts)

Specs

remove_forwarding_rules(String.t(), Keyword.t()) :: DigitalOcean.Operation.t()

Remove forwarding rules from a load b balancer.

Examples

iex> DigitalOcean.LoadBalancer.remove_forwarding_rules(
...>   "4de7ac8b-495b-4884-9a69-1050c6793cd6",
...>   forwarding_rules: [
...>     %{
...>       entry_protocol: "tcp",
...>       entry_port: 3306,
...>       target_protocol: "tcp",
...>       target_port: 3306
...>     }
...>   ]
...> ) |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response() }
Link to this function

update(load_balancer_id, opts)

Specs

Update a load balancer.

Examples

iex> DigitalOcean.LoadBalancer.update(
...>   "4de7ac8b-495b-4884-9a69-1050c6793cd6"
...>   name: "example-lb-01",
...>   region: "nyc3",
...>   algorithm: "least_connections",
...>   forwarding_rules: [
...>     %{
...>       entry_protocol: "http",
...>       entry_port: 80,
...>       target_protocol: "http",
...>       target_port: 80
...>     }
...>   ],
...>   health_check: %{
...>     protocol: "http",
...>     port: 80,
...>     path: "/",
...>     check_interval_seconds: 10,
...>     response_timeout_seconds: 5,
...>     healthy_threshold: 5,
...>     unhealthy_threshold: 3
...>   },
...>   sticky_sessions: %{
...>     type: "cookies",
...>     cookie_name: "DO_LB",
...>     cookie_ttl_seconds: 300
...>   },
...>   droplet_ids: [
...>     3164444,
...>     3164445
...>   ]
...> ) |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }