pub struct ApiPolicySpec {
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 max_order_notional: u64,
pub daily_internal_transfer_out_limit: u64,
pub daily_withdraw_limit: u64,
pub is_template: bool,
/* private fields */
}Expand description
ApiPolicySpec contains the mutable configuration of an API key policy.
Fields§
§name: StringHuman-readable policy name. Create requires a non-empty value; update validates it after merging fields selected by update_mask.
Field 1: name
description: StringOptional policy description for dashboards and audits. Maximum 256 characters.
Field 2: description
spot_markets: Vec<SpotMarketRule>Allowed spot markets for this API key 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 API key policy. Up to 64 unique explicit actions are allowed.
Field 7: actions
max_order_notional: u64Maximum notional size for any single order submitted with this API key, expressed in the canonical quote unit (for example, micro-USDT). A value of 0 means no additional cap beyond the sub-account policy.
Field 13: max_order_notional
daily_internal_transfer_out_limit: u64Maximum total notional this API key can transfer out internally per rolling 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 rolling 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: boolWhether this policy should be treated as a reusable template.
Field 19: is_template
Implementations§
Trait Implementations§
Source§impl Clone for ApiPolicySpec
impl Clone for ApiPolicySpec
Source§fn clone(&self) -> ApiPolicySpec
fn clone(&self) -> ApiPolicySpec
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 ApiPolicySpec
impl Debug for ApiPolicySpec
Source§impl Default for ApiPolicySpec
impl Default for ApiPolicySpec
Source§fn default() -> ApiPolicySpec
fn default() -> ApiPolicySpec
Source§impl DefaultInstance for ApiPolicySpec
impl DefaultInstance for ApiPolicySpec
Source§fn default_instance() -> &'static Self
fn default_instance() -> &'static Self
Source§impl<'de> Deserialize<'de> for ApiPolicySpecwhere
ApiPolicySpec: Default,
impl<'de> Deserialize<'de> for ApiPolicySpecwhere
ApiPolicySpec: 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 ApiPolicySpec
impl ExtensionSet for ApiPolicySpec
Source§const PROTO_FQN: &'static str = "auth.v1.ApiPolicySpec"
const PROTO_FQN: &'static str = "auth.v1.ApiPolicySpec"
"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 ApiPolicySpec
impl HasMessageView for ApiPolicySpec
Source§type View<'a> = ApiPolicySpecView<'a>
type View<'a> = ApiPolicySpecView<'a>
Self, borrowing from a buffer with lifetime
'a.Source§type ViewHandle = ApiPolicySpecOwnedView
type ViewHandle = ApiPolicySpecOwnedView
'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 ApiPolicySpec
impl Message for ApiPolicySpec
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 ApiPolicySpec
impl MessageName for ApiPolicySpec
Source§const PACKAGE: &'static str = "auth.v1"
const PACKAGE: &'static str = "auth.v1"
Source§const NAME: &'static str = "ApiPolicySpec"
const NAME: &'static str = "ApiPolicySpec"
. between nesting levels. Read moreSource§impl PartialEq for ApiPolicySpec
impl PartialEq for ApiPolicySpec
Source§impl ProtoElemJson for ApiPolicySpec
impl ProtoElemJson for ApiPolicySpec
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 ApiPolicySpec
impl Serialize for ApiPolicySpec
impl StructuralPartialEq for ApiPolicySpec
Auto Trait Implementations§
impl Freeze for ApiPolicySpec
impl RefUnwindSafe for ApiPolicySpec
impl Send for ApiPolicySpec
impl Sync for ApiPolicySpec
impl Unpin for ApiPolicySpec
impl UnsafeUnpin for ApiPolicySpec
impl UnwindSafe for ApiPolicySpec
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.