pub struct CapabilityLocalityV1 {
    pub seed: Option<u64>,
    pub region_density: Option<u64>,
    pub country_densities: Vec<CapabilityLocalityCountryV1>,
    pub continent_densities: Vec<CapabilityLocalityContinentV1>,
    pub city_densities: Vec<CapabilityLocalityCityV1>,
}
Expand description

The locality configuration allows a workload author to place the workloads that respond to requests at different densities in different locations.

For example, if you wanted to place a single server in the US you would use this locality

locality:
  region_density: 0
  country_density:
  - country: 'US'
    density: 1

Or perhaps you want to have the service available in most countries with a decent amount of capacity except for a particular city that is blacklisted

locality:
  region_density: 8
  city_density:
  - city: 'London'
    density: 0

The seed value allows the author to randomly move the projection of where the workload runs onto a new set of servers. Simply changing the seed to a different value will randomly place it somewhere different than it was. This can be useful if there are noisy neighbors and you want to place yourself somewhere with different neighbors

locality:
  seed: 12345

Fields§

§seed: Option<u64>

Sets the seed for a particular placement strategy

§region_density: Option<u64>

Represents the placement density within all the regions unless it is overridden by a country, continent or city locality

§country_densities: Vec<CapabilityLocalityCountryV1>

Sets the placement density of a particular country

§continent_densities: Vec<CapabilityLocalityContinentV1>

Sets the placement density of a particular continent

§city_densities: Vec<CapabilityLocalityCityV1>

Sets the placement density of a particular city

Trait Implementations§

source§

impl Clone for CapabilityLocalityV1

source§

fn clone(&self) -> CapabilityLocalityV1

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for CapabilityLocalityV1

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for CapabilityLocalityV1

source§

fn default() -> CapabilityLocalityV1

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for CapabilityLocalityV1

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl JsonSchema for CapabilityLocalityV1

source§

fn schema_name() -> String

The name of the generated JSON Schema. Read more
source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
source§

fn json_schema(gen: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
source§

fn is_referenceable() -> bool

Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword. Read more
source§

impl Merge for CapabilityLocalityV1

source§

fn merge_extend(self, other: &Self) -> Self

Extend self with values provided by other. Read more
source§

impl PartialEq for CapabilityLocalityV1

source§

fn eq(&self, other: &CapabilityLocalityV1) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for CapabilityLocalityV1

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for CapabilityLocalityV1

source§

impl StructuralPartialEq for CapabilityLocalityV1

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> DynClone for T
where T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

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

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,