Skip to main content

SubaccountPolicySpecView

Struct SubaccountPolicySpecView 

Source
pub struct SubaccountPolicySpecView<'a> {
Show 24 fields 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 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 __buffa_unknown_fields: UnknownFieldsView<'a>,
}
Expand description

SubaccountPolicySpec contains the mutable configuration of a sub-account policy.

Fields§

§name: &'a str

Human-readable policy name. Create requires a non-empty value; update validates it after merging fields selected by update_mask.

Field 1: name

§description: &'a str

Optional policy description for dashboards and audits. Maximum 256 characters.

Field 2: description

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

Allowed spot markets for this policy.

Field 3: spot_markets

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

Allowed perp markets and optional per-contract leverage caps.

Field 4: perp_markets

§spot_market_scope: EnumValue<Value>

Market-level scope for spot markets. When unspecified, defaults to ALL.

Field 5: spot_market_scope

§perp_market_scope: EnumValue<Value>

Market-level scope for perp contracts. When unspecified, defaults to ALL.

Field 6: perp_market_scope

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

High-level actions enabled for the sub-account policy. Up to 64 unique explicit actions are allowed.

Field 7: actions

§global_notional_cap: u64

Maximum total notional exposure across all positions for this sub-account, expressed in the canonical quote unit (for example, micro-USDT). A value of 0 means no explicit cap.

Field 12: global_notional_cap

§max_order_notional: u64

Maximum notional size for any single order on this sub-account, expressed in the canonical quote unit (for example, micro-USDT). 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. Supported non-zero values are 1, 3, 5, 10, 20, 50, and 100. A value of 0 means no explicit cap.

Field 16: global_perp_leverage_x

§daily_internal_transfer_out_limit: u64

Maximum total notional this sub-account can transfer out internally per rolling 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 rolling 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.

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 20: enforce_withdraw_whitelist

§trading_halted: bool

When true, new orders for this sub-account are rejected regardless of other policy settings.

Field 21: trading_halted

§liquidation_only: bool

When true, this sub-account may only reduce or close existing exposure.

Field 22: liquidation_only

§daily_loss_limit: u64

Maximum realized loss 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 23: daily_loss_limit

§intraday_drawdown_limit_bps: u32

Maximum drawdown from peak equity in basis points. One basis point is 1/100 of one percent. A value of 0 means no explicit limit.

Field 24: intraday_drawdown_limit_bps

§locked: bool

When true, the policy is write-protected and requires an elevated mutation path.

Field 25: locked

§review_at: MessageFieldView<TimestampView<'a>>

Optional review time in UTC. This does not automatically disable the policy.

Field 26: review_at

§expires_at: MessageFieldView<TimestampView<'a>>

Optional expiry time in UTC. This does not automatically disable the policy.

Field 27: expires_at

§__buffa_unknown_fields: UnknownFieldsView<'a>

Trait Implementations§

Source§

impl<'a> Clone for SubaccountPolicySpecView<'a>

Source§

fn clone(&self) -> SubaccountPolicySpecView<'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 SubaccountPolicySpecView<'a>

Source§

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

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

impl<'a> Default for SubaccountPolicySpecView<'a>

Source§

fn default() -> SubaccountPolicySpecView<'a>

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

impl<'v> DefaultViewInstance for SubaccountPolicySpecView<'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 SubaccountPolicySpecView<'a>

Source§

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

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

const NAME: &'static str = "SubaccountPolicySpec"

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

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

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

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

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

impl<'a> MessageView<'a> for SubaccountPolicySpecView<'a>

Source§

type Owned = SubaccountPolicySpec

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

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

fn to_owned_from_source( &self, __buffa_src: Option<&Bytes>, ) -> Result<SubaccountPolicySpec, 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 SubaccountPolicySpecView<'__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 SubaccountPolicySpecView<'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 SubaccountPolicySpecView<'static>

Source§

type Reborrowed<'b> = SubaccountPolicySpecView<'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