pub struct Pool {
    pub id: String,
    pub created_on: DateTime<Utc>,
    pub modified_on: DateTime<Utc>,
    pub description: String,
    pub name: String,
    pub enabled: bool,
    pub minimum_origins: u8,
    pub monitor: String,
    pub check_regions: Option<Vec<String>>,
    pub origins: HashSet<Origin>,
    pub notification_email: String,
}
Expand description

A pool is a set of origins that requests could be routed to (e.g. each of your data centers or regions have its own pool). Requests will be routed to particular pools according to your steering policy, and then balanced across origins in that pool, proportional to each origin’s weight.

For example, you might have two pools: one for the US, and one for Oceania. Inside each pool, there would be many origins, with weight roughly proportional to the number of requests they can handle. Then you might use a “dynamic latency” steering policy to ensure requests get routed to whatever pool can serve them fastest. So US users will probably get routed to the US pool. If the US pool becomes unavailable, they’ll fail over to the Oceania pool.

Fields

id: Stringcreated_on: DateTime<Utc>modified_on: DateTime<Utc>description: String

A human-readable description of the pool. e.g. “Primary data center - Provider XYZ”

name: Stringenabled: bool

Whether to enable (the default) this pool. Disabled pools will not receive traffic and are excluded from health checks. Disabling a pool will cause any load balancers using it to failover to the next pool (if any).

minimum_origins: u8

The minimum number of origins that must be healthy for this pool to serve traffic. If the number of healthy origins falls below this number, the pool will be marked unhealthy and we will failover to the next available pool.

monitor: String

The ID of the Monitor to use for health checking origins within this pool.

check_regions: Option<Vec<String>>origins: HashSet<Origin>

The list of origins within this pool. Traffic directed at this pool is balanced across all currently healthy origins, provided the pool itself is healthy.

notification_email: String

The email address to send health status notifications to. This can be an individual mailbox or a mailing list.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Deserialize this value from the given Serde deserializer. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Compare self to key and return true if they are equal.

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more