pub struct ApiPolicyView {Show 16 fields
pub id: u64,
pub name: String,
pub description: String,
pub spot_markets: Vec<SpotMarketRule>,
pub perp_markets: Vec<PerpMarketRule>,
pub actions: Vec<EnumValue<PolicyAction>>,
pub spot_market_scope: EnumValue<Value>,
pub perp_market_scope: EnumValue<Value>,
pub max_order_notional: u64,
pub daily_internal_transfer_out_limit: u64,
pub daily_withdraw_limit: u64,
pub is_template: bool,
pub source_template_id: u64,
pub created_at: MessageField<Timestamp>,
pub updated_at: MessageField<Timestamp>,
pub revision: u64,
/* private fields */
}Expand description
ApiPolicyView is the public view of an API key policy template. API key policy limits are additional caps and cannot exceed the sub-account policy.
Fields§
§id: u64Policy identifier (opaque ID).
Field 1: id
name: StringHuman-readable policy name.
Field 2: name
description: StringOptional policy description for dashboards and audits.
Field 3: description
spot_markets: Vec<SpotMarketRule>Allowed spot markets for this API key policy.
Field 4: spot_markets
perp_markets: Vec<PerpMarketRule>Allowed perp contracts for this API key policy, with optional per-contract caps.
Field 5: perp_markets
actions: Vec<EnumValue<PolicyAction>>High-level actions enabled for this API key. Up to 64 unique explicit actions may be returned.
Field 6: actions
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 7: 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 8: perp_market_scope
max_order_notional: u64— Global risk limits (API key scope) —
Maximum notional size allowed for any single order via this key, expressed in a canonical quote unit (e.g. micro-USDT). A value of 0 means “no explicit additional cap” beyond the sub-account policy.
Field 13: max_order_notional
daily_internal_transfer_out_limit: u64— Capital movement limits (API key scope) —
Maximum total notional this API key can transfer out internally per day, expressed in the canonical quote unit (for example, micro-USDT). A value of 0 means no additional cap beyond the sub-account policy.
Field 17: daily_internal_transfer_out_limit
daily_withdraw_limit: u64Maximum total notional this API key can withdraw per day, expressed in the canonical quote unit (for example, micro-USDT). A value of 0 means no additional cap beyond the sub-account policy.
Field 18: daily_withdraw_limit
is_template: bool— Template / lifecycle metadata —
When true, this policy is intended to be reused as a template across multiple API keys. When false, it represents a single-key instance.
Field 19: is_template
source_template_id: u64Optional source template this policy was copied from (opaque ID). This is audit metadata only and does not imply live linkage.
Field 20: source_template_id
created_at: MessageField<Timestamp>Creation time in UTC.
Field 21: created_at
updated_at: MessageField<Timestamp>Last update time in UTC.
Field 22: updated_at
revision: u64Monotonic resource revision used for conditional updates.
Field 23: revision
Implementations§
Trait Implementations§
Source§impl Clone for ApiPolicyView
impl Clone for ApiPolicyView
Source§fn clone(&self) -> ApiPolicyView
fn clone(&self) -> ApiPolicyView
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ApiPolicyView
impl Debug for ApiPolicyView
Source§impl Default for ApiPolicyView
impl Default for ApiPolicyView
Source§fn default() -> ApiPolicyView
fn default() -> ApiPolicyView
Source§impl DefaultInstance for ApiPolicyView
impl DefaultInstance for ApiPolicyView
Source§fn default_instance() -> &'static Self
fn default_instance() -> &'static Self
Source§impl<'de> Deserialize<'de> for ApiPolicyViewwhere
ApiPolicyView: Default,
impl<'de> Deserialize<'de> for ApiPolicyViewwhere
ApiPolicyView: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl ExtensionSet for ApiPolicyView
impl ExtensionSet for ApiPolicyView
Source§const PROTO_FQN: &'static str = "auth.v1.ApiPolicyView"
const PROTO_FQN: &'static str = "auth.v1.ApiPolicyView"
"google.protobuf.FieldOptions". Read moreSource§fn unknown_fields(&self) -> &UnknownFields
fn unknown_fields(&self) -> &UnknownFields
Source§fn unknown_fields_mut(&mut self) -> &mut UnknownFields
fn unknown_fields_mut(&mut self) -> &mut UnknownFields
Source§fn extension<C>(&self, ext: &Extension<C>) -> <C as ExtensionCodec>::Outputwhere
C: ExtensionCodec,
fn extension<C>(&self, ext: &Extension<C>) -> <C as ExtensionCodec>::Outputwhere
C: ExtensionCodec,
Source§fn set_extension<C>(
&mut self,
ext: &Extension<C>,
value: <C as ExtensionCodec>::Value,
)where
C: ExtensionCodec,
fn set_extension<C>(
&mut self,
ext: &Extension<C>,
value: <C as ExtensionCodec>::Value,
)where
C: ExtensionCodec,
Source§fn has_extension<C>(&self, ext: &Extension<C>) -> boolwhere
C: ExtensionCodec,
fn has_extension<C>(&self, ext: &Extension<C>) -> boolwhere
C: ExtensionCodec,
true if any record at the extension’s field number is present. Read moreSource§fn clear_extension<C>(&mut self, ext: &Extension<C>)where
C: ExtensionCodec,
fn clear_extension<C>(&mut self, ext: &Extension<C>)where
C: ExtensionCodec,
Source§fn extension_or_default<C>(
&self,
ext: &Extension<C>,
) -> <C as ExtensionCodec>::Valuewhere
C: ExtensionCodec<Output = Option<<C as ExtensionCodec>::Value>>,
<C as ExtensionCodec>::Value: Default,
fn extension_or_default<C>(
&self,
ext: &Extension<C>,
) -> <C as ExtensionCodec>::Valuewhere
C: ExtensionCodec<Output = Option<<C as ExtensionCodec>::Value>>,
<C as ExtensionCodec>::Value: Default,
[default = ...]
value if absent, or the type’s Default if no proto default was declared. Read moreSource§impl HasMessageView for ApiPolicyView
impl HasMessageView for ApiPolicyView
Source§type View<'a> = ApiPolicyViewView<'a>
type View<'a> = ApiPolicyViewView<'a>
Self, borrowing from a buffer with lifetime
'a.Source§type ViewHandle = ApiPolicyViewOwnedView
type ViewHandle = ApiPolicyViewOwnedView
'static owned-view handle for Self
(FooOwnedView).Source§fn decode_view(buf: &[u8]) -> Result<Self::View<'_>, DecodeError>
fn decode_view(buf: &[u8]) -> Result<Self::View<'_>, DecodeError>
Source§fn decode_view_with_options<'a>(
buf: &'a [u8],
opts: &DecodeOptions,
) -> Result<Self::View<'a>, DecodeError>
fn decode_view_with_options<'a>( buf: &'a [u8], opts: &DecodeOptions, ) -> Result<Self::View<'a>, DecodeError>
View under custom
DecodeOptions (recursion limit, max message
size, unknown-field limit). Read moreSource§fn decode_view_handle(bytes: Bytes) -> Result<Self::ViewHandle, DecodeError>
fn decode_view_handle(bytes: Bytes) -> Result<Self::ViewHandle, DecodeError>
Source§fn decode_view_handle_with_options(
bytes: Bytes,
opts: &DecodeOptions,
) -> Result<Self::ViewHandle, DecodeError>
fn decode_view_handle_with_options( bytes: Bytes, opts: &DecodeOptions, ) -> Result<Self::ViewHandle, DecodeError>
Source§impl Message for ApiPolicyView
impl Message for ApiPolicyView
Source§fn compute_size(&self, __cache: &mut SizeCache) -> u32
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)
fn write_to(&self, __cache: &mut SizeCache, buf: &mut impl BufMut)
cache (populated by a prior
compute_size call on the same cache). Read moreSource§fn merge_field(
&mut self,
tag: Tag,
buf: &mut impl Buf,
ctx: DecodeContext<'_>,
) -> Result<(), DecodeError>
fn merge_field( &mut self, tag: Tag, buf: &mut impl Buf, ctx: DecodeContext<'_>, ) -> Result<(), DecodeError>
buf. Read moreSource§fn encode(&self, buf: &mut impl BufMut)
fn encode(&self, buf: &mut impl BufMut)
Source§fn encode_with_cache(&self, cache: &mut SizeCache, buf: &mut impl BufMut)
fn encode_with_cache(&self, cache: &mut SizeCache, buf: &mut impl BufMut)
SizeCache, for
reuse across many encodes in a hot loop. Clears the cache first.Source§fn encoded_len(&self) -> u32
fn encoded_len(&self) -> u32
Source§fn encode_length_delimited(&self, buf: &mut impl BufMut)
fn encode_length_delimited(&self, buf: &mut impl BufMut)
Source§fn encode_to_bytes(&self) -> Bytes
fn encode_to_bytes(&self) -> Bytes
bytes::Bytes. Read moreSource§fn decode(buf: &mut impl Buf) -> Result<Self, DecodeError>where
Self: Sized,
fn decode(buf: &mut impl Buf) -> Result<Self, DecodeError>where
Self: Sized,
Source§fn decode_from_slice(data: &[u8]) -> Result<Self, DecodeError>where
Self: Sized,
fn decode_from_slice(data: &[u8]) -> Result<Self, DecodeError>where
Self: Sized,
Source§fn decode_length_delimited(buf: &mut impl Buf) -> Result<Self, DecodeError>where
Self: Sized,
fn decode_length_delimited(buf: &mut impl Buf) -> Result<Self, DecodeError>where
Self: Sized,
Source§fn merge_to_limit(
&mut self,
buf: &mut impl Buf,
ctx: DecodeContext<'_>,
limit: usize,
) -> Result<(), DecodeError>
fn merge_to_limit( &mut self, buf: &mut impl Buf, ctx: DecodeContext<'_>, limit: usize, ) -> Result<(), DecodeError>
Source§fn merge_group(
&mut self,
buf: &mut impl Buf,
ctx: DecodeContext<'_>,
field_number: u32,
) -> Result<(), DecodeError>
fn merge_group( &mut self, buf: &mut impl Buf, ctx: DecodeContext<'_>, field_number: u32, ) -> Result<(), DecodeError>
buf, reading fields until an
EndGroup tag with the given field_number is encountered. Read moreSource§fn merge(
&mut self,
buf: &mut impl Buf,
ctx: DecodeContext<'_>,
) -> Result<(), DecodeError>
fn merge( &mut self, buf: &mut impl Buf, ctx: DecodeContext<'_>, ) -> Result<(), DecodeError>
Source§fn merge_from_slice(&mut self, data: &[u8]) -> Result<(), DecodeError>
fn merge_from_slice(&mut self, data: &[u8]) -> Result<(), DecodeError>
Source§fn merge_length_delimited(
&mut self,
buf: &mut impl Buf,
ctx: DecodeContext<'_>,
) -> Result<(), DecodeError>
fn merge_length_delimited( &mut self, buf: &mut impl Buf, ctx: DecodeContext<'_>, ) -> Result<(), DecodeError>
Source§impl MessageName for ApiPolicyView
impl MessageName for ApiPolicyView
Source§const PACKAGE: &'static str = "auth.v1"
const PACKAGE: &'static str = "auth.v1"
Source§const NAME: &'static str = "ApiPolicyView"
const NAME: &'static str = "ApiPolicyView"
. between nesting levels. Read moreSource§impl PartialEq for ApiPolicyView
impl PartialEq for ApiPolicyView
Source§impl ProtoElemJson for ApiPolicyView
impl ProtoElemJson for ApiPolicyView
Source§fn serialize_proto_json<S: Serializer>(
v: &Self,
s: S,
) -> Result<S::Ok, S::Error>
fn serialize_proto_json<S: Serializer>( v: &Self, s: S, ) -> Result<S::Ok, S::Error>
Source§fn deserialize_proto_json<'de, D: Deserializer<'de>>(
d: D,
) -> Result<Self, D::Error>
fn deserialize_proto_json<'de, D: Deserializer<'de>>( d: D, ) -> Result<Self, D::Error>
Source§impl Serialize for ApiPolicyView
impl Serialize for ApiPolicyView
impl StructuralPartialEq for ApiPolicyView
Auto Trait Implementations§
impl Freeze for ApiPolicyView
impl RefUnwindSafe for ApiPolicyView
impl Send for ApiPolicyView
impl Sync for ApiPolicyView
impl Unpin for ApiPolicyView
impl UnsafeUnpin for ApiPolicyView
impl UnwindSafe for ApiPolicyView
Blanket Implementations§
Source§impl<T> AnyMessage for Twhere
T: Message + JsonSerialize + 'static,
impl<T> AnyMessage for Twhere
T: Message + JsonSerialize + 'static,
Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
dyn Any for downcasting.Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Any> for owned downcasting. Read moreSource§fn encode(&self, format: CodecFormat) -> Result<Bytes, ConnectError>
fn encode(&self, format: CodecFormat) -> Result<Bytes, ConnectError>
Source§fn type_name(&self) -> &'static str
fn type_name(&self) -> &'static str
std::any::type_name.Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<M> Encodable<M> for Mwhere
M: Message + JsonSerialize,
impl<M> Encodable<M> for Mwhere
M: Message + JsonSerialize,
Source§fn encode(&self, codec: CodecFormat) -> Result<Bytes, ConnectError>
fn encode(&self, codec: CodecFormat) -> Result<Bytes, ConnectError>
self as wire bytes for M in the requested format.