Skip to main content

SubaccountPolicyViewView

Struct SubaccountPolicyViewView 

Source
pub struct SubaccountPolicyViewView<'a> {
Show 30 fields pub id: u64, pub name: &'a str, pub description: &'a str, pub spot_markets: RepeatedView<'a, SpotMarketRuleView<'a>>, pub perp_markets: RepeatedView<'a, PerpMarketRuleView<'a>>, pub spot_market_scope: EnumValue<Value>, pub perp_market_scope: EnumValue<Value>, pub actions: RepeatedView<'a, EnumValue<PolicyAction>>, pub is_template: bool, pub source_template_id: u64, pub global_notional_cap: u64, pub max_order_notional: u64, pub max_open_orders: u32, pub max_open_positions: u32, pub global_perp_leverage_x: u32, pub daily_internal_transfer_out_limit: u64, pub daily_withdraw_limit: u64, pub internal_transfers_own_only: bool, pub enforce_withdraw_whitelist: bool, pub trading_halted: bool, pub liquidation_only: bool, pub daily_loss_limit: u64, pub intraday_drawdown_limit_bps: u32, pub locked: bool, pub review_at: MessageFieldView<TimestampView<'a>>, pub expires_at: MessageFieldView<TimestampView<'a>>, pub created_at: MessageFieldView<TimestampView<'a>>, pub updated_at: MessageFieldView<TimestampView<'a>>, pub revision: u64, pub __buffa_unknown_fields: UnknownFieldsView<'a>,
}
Expand description

SubaccountPolicyView is the public view of a sub-account policy.

Fields§

§id: u64

Policy identifier (opaque ID).

Field 1: id

§name: &'a str

Human-readable policy name.

Field 2: name

§description: &'a str

Optional policy description for dashboards and audits.

Field 3: description

§spot_markets: RepeatedView<'a, SpotMarketRuleView<'a>>

Allowed spot markets for this sub-account.

Field 4: spot_markets

§perp_markets: RepeatedView<'a, PerpMarketRuleView<'a>>

Allowed perp contracts for this sub-account, with optional per-contract caps.

Field 5: perp_markets

§spot_market_scope: EnumValue<Value>

Market-level scope for spot markets. When ALL, spot_markets is returned for display only and is not enforced.

Field 6: spot_market_scope

§perp_market_scope: EnumValue<Value>

Market-level scope for perp contracts. When ALL, perp_markets is returned for display only and is not enforced.

Field 7: perp_market_scope

§actions: RepeatedView<'a, EnumValue<PolicyAction>>

High-level actions enabled for the sub-account. Up to 64 unique explicit actions may be returned.

Field 8: actions

§is_template: bool

True if this policy is a reusable template; false if it is a per-sub-account instance.

Field 10: is_template

§source_template_id: u64

Optional source template this policy was copied from (opaque ID). This is audit metadata only and does not imply live linkage.

Field 11: source_template_id

§global_notional_cap: u64

— Global risk limits (sub-account scope) —

Maximum total notional exposure (across all positions) allowed for this sub-account, expressed in a canonical quote unit (e.g. micro-USDT). A value of 0 means “no explicit cap”.

Field 12: global_notional_cap

§max_order_notional: u64

Maximum notional size allowed for any single order on this sub-account, expressed in the same canonical quote unit as global_notional_cap. A value of 0 means “no explicit cap”.

Field 13: max_order_notional

§max_open_orders: u32

Maximum number of resting orders allowed on this sub-account at any time. A value of 0 means “no explicit cap”.

Field 14: max_open_orders

§max_open_positions: u32

Maximum number of open perp positions allowed on this sub-account. A value of 0 means “no explicit cap”.

Field 15: max_open_positions

§global_perp_leverage_x: u32

Optional global leverage cap across all perp contracts, expressed as a maximum leverage multiple. Supported non-zero values are 1, 3, 5, 10, 20, 50, and 100. A value of 0 means “no explicit global cap”; per-contract caps still apply.

Field 16: global_perp_leverage_x

§daily_internal_transfer_out_limit: u64

— Capital movement limits (sub-account scope) —

Maximum total notional this sub-account can transfer out internally per day, expressed in the canonical quote unit (for example, micro-USDT). A value of 0 means “no explicit cap”.

Field 17: daily_internal_transfer_out_limit

§daily_withdraw_limit: u64

Maximum total notional this sub-account can withdraw per day, expressed in the canonical quote unit (for example, micro-USDT). A value of 0 means “no explicit cap”.

Field 18: daily_withdraw_limit

§internal_transfers_own_only: bool

When true, internal transfers from this sub-account may only target other sub-accounts owned by the same root account. When false, transfers to other owners are allowed (subject to other policy checks).

Field 19: internal_transfers_own_only

§enforce_withdraw_whitelist: bool

When true, external withdrawals from this sub-account must target an approved withdrawal destination.

Field 22: enforce_withdraw_whitelist

§trading_halted: bool

— Safety / kill-switch controls —

When true, trading on this sub-account is halted: new orders are rejected regardless of other settings. Existing positions may still be closed by product safety controls.

Field 23: trading_halted

§liquidation_only: bool

When true, this sub-account is in liquidation-only mode: new exposure cannot be opened, but reduce-only / close-out actions are allowed.

Field 24: liquidation_only

§daily_loss_limit: u64

Maximum allowed realized loss for this sub-account over a rolling day before safety controls may halt activity, expressed in the canonical quote unit (for example, micro-USDT). A value of 0 means “no explicit limit”.

Field 25: daily_loss_limit

§intraday_drawdown_limit_bps: u32

Maximum allowed drawdown from peak equity in basis points (1/100 of a percent) before safety controls may halt activity. A value of 0 means “no explicit limit”.

Field 26: intraday_drawdown_limit_bps

§locked: bool

— Governance / lifecycle metadata —

When true, this policy is write-protected and requires an elevated approval flow to modify it.

Field 27: locked

§review_at: MessageFieldView<TimestampView<'a>>

Optional review time in UTC. This is governance metadata and does not automatically disable the policy.

Field 28: review_at

§expires_at: MessageFieldView<TimestampView<'a>>

Optional expiry time in UTC. This is governance metadata and does not automatically disable the policy.

Field 29: expires_at

§created_at: MessageFieldView<TimestampView<'a>>

Creation time in UTC.

Field 20: created_at

§updated_at: MessageFieldView<TimestampView<'a>>

Last update time in UTC.

Field 21: updated_at

§revision: u64

Monotonic resource revision used for conditional updates.

Field 30: revision

§__buffa_unknown_fields: UnknownFieldsView<'a>

Trait Implementations§

Source§

impl<'a> Clone for SubaccountPolicyViewView<'a>

Source§

fn clone(&self) -> SubaccountPolicyViewView<'a>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for SubaccountPolicyViewView<'a>

Source§

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

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

impl<'a> Default for SubaccountPolicyViewView<'a>

Source§

fn default() -> SubaccountPolicyViewView<'a>

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

impl<'v> DefaultViewInstance for SubaccountPolicyViewView<'v>

Source§

fn default_view_instance<'a>() -> &'a Self
where Self: 'a,

Return a reference to the single default view instance. Read more
Source§

impl<'a> MessageName for SubaccountPolicyViewView<'a>

Source§

const PACKAGE: &'static str = "auth.v1"

The protobuf package the message is declared in. Read more
Source§

const NAME: &'static str = "SubaccountPolicyView"

The unqualified message name, with . between nesting levels. Read more
Source§

const FULL_NAME: &'static str = "auth.v1.SubaccountPolicyView"

The fully-qualified protobuf type name with no leading dot. Read more
Source§

const TYPE_URL: &'static str = "type.googleapis.com/auth.v1.SubaccountPolicyView"

The google.protobuf.Any.type_url form for this message. Read more
Source§

impl<'a> MessageView<'a> for SubaccountPolicyViewView<'a>

Source§

type Owned = SubaccountPolicyView

The corresponding owned message type.
Source§

fn decode_view(buf: &'a [u8]) -> Result<Self, DecodeError>

Decode a view from a buffer, borrowing string/bytes fields directly. Read more
Source§

fn decode_view_with_ctx( buf: &'a [u8], ctx: DecodeContext<'_>, ) -> Result<Self, DecodeError>

Decode a view under custom decode limits. Read more
Source§

fn merge_view_field( &mut self, tag: Tag, cur: &'a [u8], before_tag: &'a [u8], ctx: DecodeContext<'_>, ) -> Result<&'a [u8], DecodeError>

Decode one field’s payload into this view (generated per message). Read more
Source§

fn to_owned_message(&self) -> Result<SubaccountPolicyView, DecodeError>

Convert this view to the owned message type. Read more
Source§

fn to_owned_from_source( &self, __buffa_src: Option<&Bytes>, ) -> Result<SubaccountPolicyView, DecodeError>

Convert this view to the owned message type, optionally slicing bytes::Bytes-typed fields from source instead of copying. Read more
Source§

fn decode_view_ctx( buf: &'a [u8], ctx: DecodeContext<'_>, ) -> Result<Self, DecodeError>
where Self: Default,

Decode a view under an explicit DecodeContext (remaining recursion depth and unknown-field allowance), driving the provided tag loop over merge_view_field. Read more
Source§

fn merge_into_view( &mut self, buf: &'a [u8], ctx: DecodeContext<'_>, ) -> Result<(), DecodeError>

Merge fields from buf into this view (proto merge semantics): repeated fields append, singular fields last-wins, singular message fields merge recursively. Read more
Source§

impl<'__a> Serialize for SubaccountPolicyViewView<'__a>

Serializes this view as protobuf JSON.

Implicit-presence fields with default values are omitted, required fields are always emitted, explicit-presence (optional) fields are emitted only when set, bytes fields are base64-encoded, and enum values are their proto name strings.

This impl uses serialize_map(None) because the number of emitted fields depends on default-omission rules; serializers that require known map lengths (e.g. bincode) will return a runtime error. Use the owned message type for those formats.

Source§

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

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

impl<'a> ViewEncode<'a> for SubaccountPolicyViewView<'a>

Source§

fn compute_size(&self, __cache: &mut SizeCache) -> u32

Compute the encoded byte size of this view, recording nested sub-message sizes in cache for write_to to consume. Read more
Source§

fn write_to(&self, __cache: &mut SizeCache, buf: &mut impl BufMut)

Write this view’s encoded bytes to a buffer, consuming nested-message sizes from cache (populated by a prior compute_size call on the same cache). Read more
Source§

fn encode(&self, buf: &mut impl BufMut)

Compute size, then write. Primary view-encode entry point.
Source§

fn encode_with_cache(&self, cache: &mut SizeCache, buf: &mut impl BufMut)

Encode using a caller-supplied SizeCache, for reuse across many encodes in a hot loop. Clears the cache first.
Source§

fn encoded_len(&self) -> u32

Compute the encoded byte size of this view. Read more
Source§

fn encode_length_delimited(&self, buf: &mut impl BufMut)

Encode this view as a length-delimited byte sequence.
Source§

fn encode_to_vec(&self) -> Vec<u8>

Encode this view to a new Vec<u8>.
Source§

fn encode_to_bytes(&self) -> Bytes

Encode this view to a new bytes::Bytes.
Source§

impl ViewReborrow for SubaccountPolicyViewView<'static>

Source§

type Reborrowed<'b> = SubaccountPolicyViewView<'b>

The same view type with its lifetime shortened to 'b.
Source§

fn reborrow<'b>(this: &'b Self) -> &'b Self::Reborrowed<'b>

Coerce &'b Self (= &'b FooView<'static>) to &'b Self::Reborrowed<'b> (= &'b FooView<'b>). The canonical body is just this; the compiler accepts it via standard lifetime variance for covariant view types. Read more

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

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

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

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

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> JsonSerialize for T
where T: Serialize,

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

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>,

Source§

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>,

Source§

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> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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