Skip to main content

SubaccountPolicySpec

Struct SubaccountPolicySpec 

Source
pub struct SubaccountPolicySpec {
Show 23 fields pub name: String, pub description: String, pub spot_markets: Vec<SpotMarketRule>, pub perp_markets: Vec<PerpMarketRule>, pub spot_market_scope: EnumValue<Value>, pub perp_market_scope: EnumValue<Value>, pub actions: Vec<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: MessageField<Timestamp>, pub expires_at: MessageField<Timestamp>, /* private fields */
}
Expand description

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

Fields§

§name: String

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

Field 1: name

§description: String

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

Field 2: description

§spot_markets: Vec<SpotMarketRule>

Allowed spot markets for this policy.

Field 3: spot_markets

§perp_markets: Vec<PerpMarketRule>

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: Vec<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: MessageField<Timestamp>

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

Field 26: review_at

§expires_at: MessageField<Timestamp>

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

Field 27: expires_at

Implementations§

Source§

impl SubaccountPolicySpec

Source

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

Protobuf type URL for this message, for use with Any::pack and Any::unpack_if.

Format: type.googleapis.com/<fully.qualified.TypeName>

Trait Implementations§

Source§

impl Clone for SubaccountPolicySpec

Source§

fn clone(&self) -> SubaccountPolicySpec

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 Debug for SubaccountPolicySpec

Source§

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

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

impl Default for SubaccountPolicySpec

Source§

fn default() -> SubaccountPolicySpec

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

impl DefaultInstance for SubaccountPolicySpec

Source§

fn default_instance() -> &'static Self

Return a reference to the single default instance of this type.
Source§

impl<'de> Deserialize<'de> for SubaccountPolicySpec

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 ExtensionSet for SubaccountPolicySpec

Source§

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

Fully-qualified proto type name of this message (no leading dot), e.g. "google.protobuf.FieldOptions". Read more
Source§

fn unknown_fields(&self) -> &UnknownFields

Immutable access to the extendee’s unknown-field storage.
Source§

fn unknown_fields_mut(&mut self) -> &mut UnknownFields

Mutable access to the extendee’s unknown-field storage.
Source§

fn extension<C>(&self, ext: &Extension<C>) -> <C as ExtensionCodec>::Output
where C: ExtensionCodec,

Read an extension value. Read more
Source§

fn set_extension<C>( &mut self, ext: &Extension<C>, value: <C as ExtensionCodec>::Value, )
where C: ExtensionCodec,

Write an extension value, replacing any prior occurrences. Read more
Source§

fn has_extension<C>(&self, ext: &Extension<C>) -> bool
where C: ExtensionCodec,

Returns true if any record at the extension’s field number is present. Read more
Source§

fn clear_extension<C>(&mut self, ext: &Extension<C>)
where C: ExtensionCodec,

Remove all records at the extension’s field number. Read more
Source§

fn extension_or_default<C>( &self, ext: &Extension<C>, ) -> <C as ExtensionCodec>::Value
where C: ExtensionCodec<Output = Option<<C as ExtensionCodec>::Value>>, <C as ExtensionCodec>::Value: Default,

Read a singular extension value, returning the proto2 [default = ...] value if absent, or the type’s Default if no proto default was declared. Read more
Source§

impl HasMessageView for SubaccountPolicySpec

Source§

type View<'a> = SubaccountPolicySpecView<'a>

The zero-copy view of Self, borrowing from a buffer with lifetime 'a.
Source§

type ViewHandle = SubaccountPolicySpecOwnedView

The generated 'static owned-view handle for Self (FooOwnedView).
Source§

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

Decode a borrowed View from a byte slice. Read more
Source§

fn decode_view_with_options<'a>( buf: &'a [u8], opts: &DecodeOptions, ) -> Result<Self::View<'a>, DecodeError>

Decode a borrowed View under custom DecodeOptions (recursion limit, max message size, unknown-field limit). Read more
Source§

fn decode_view_handle(bytes: Bytes) -> Result<Self::ViewHandle, DecodeError>

Decode a ViewHandle from a Bytes buffer. Read more
Source§

fn decode_view_handle_with_options( bytes: Bytes, opts: &DecodeOptions, ) -> Result<Self::ViewHandle, DecodeError>

Decode a ViewHandle with custom DecodeOptions (recursion limit, max message size). Read more
Source§

impl Message for SubaccountPolicySpec

Source§

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

Returns the total encoded size in bytes.

The result is a u32; the protobuf specification requires all messages to fit within 2 GiB (2,147,483,647 bytes), so a compliant message will never overflow this type.

Source§

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

Write this message’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 merge_field( &mut self, tag: Tag, buf: &mut impl Buf, ctx: DecodeContext<'_>, ) -> Result<(), DecodeError>

Processes a single already-decoded tag and its associated field data from buf. Read more
Source§

fn clear(&mut self)

Clear all fields to their default values.
Source§

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

Compute size, then write. This is the primary encoding API.
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 message. Read more
Source§

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

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

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

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

fn encode_to_bytes(&self) -> Bytes

Encode this message to a new bytes::Bytes. Read more
Source§

fn decode(buf: &mut impl Buf) -> Result<Self, DecodeError>
where Self: Sized,

Decode a message from a buffer.
Source§

fn decode_from_slice(data: &[u8]) -> Result<Self, DecodeError>
where Self: Sized,

Decode a message from a byte slice. Read more
Source§

fn decode_length_delimited(buf: &mut impl Buf) -> Result<Self, DecodeError>
where Self: Sized,

Decode a length-delimited message from a buffer. Read more
Source§

fn merge_to_limit( &mut self, buf: &mut impl Buf, ctx: DecodeContext<'_>, limit: usize, ) -> Result<(), DecodeError>

Merge fields from a buffer until buf.remaining() reaches limit. Read more
Source§

fn merge_group( &mut self, buf: &mut impl Buf, ctx: DecodeContext<'_>, field_number: u32, ) -> Result<(), DecodeError>

Merges a group-encoded message from buf, reading fields until an EndGroup tag with the given field_number is encountered. Read more
Source§

fn merge( &mut self, buf: &mut impl Buf, ctx: DecodeContext<'_>, ) -> Result<(), DecodeError>

Merge fields from a buffer into this message. Read more
Source§

fn merge_from_slice(&mut self, data: &[u8]) -> Result<(), DecodeError>

Merge fields from a byte slice into this message. Read more
Source§

fn merge_length_delimited( &mut self, buf: &mut impl Buf, ctx: DecodeContext<'_>, ) -> Result<(), DecodeError>

Merge fields from a length-delimited sub-message payload into this message. Read more
Source§

impl MessageName for SubaccountPolicySpec

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 PartialEq for SubaccountPolicySpec

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl ProtoElemJson for SubaccountPolicySpec

Source§

fn serialize_proto_json<S: Serializer>( v: &Self, s: S, ) -> Result<S::Ok, S::Error>

Serialize this value with proto3 JSON semantics.
Source§

fn deserialize_proto_json<'de, D: Deserializer<'de>>( d: D, ) -> Result<Self, D::Error>

Deserialize a value with proto3 JSON semantics.
Source§

impl Serialize for SubaccountPolicySpec

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 StructuralPartialEq for SubaccountPolicySpec

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> AnyMessage for T
where T: Message + JsonSerialize + 'static,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Borrow the message as dyn Any for downcasting.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Mutably borrow the message as dyn Any for downcasting.
Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert the boxed message into a Box<dyn Any> for owned downcasting. Read more
Source§

fn encode(&self, format: CodecFormat) -> Result<Bytes, ConnectError>

Serialize the message to wire bytes in the given format. Read more
Source§

fn type_name(&self) -> &'static str

The concrete type’s name, for diagnostics. The default uses std::any::type_name.
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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<M> Encodable<M> for M

Source§

fn encode(&self, codec: CodecFormat) -> Result<Bytes, ConnectError>

Encode self as wire bytes for M in the requested format.
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> JsonDeserialize for T

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