pub struct Ec2Service { /* private fields */ }Expand description
The AWSim EC2 service handler (networking primitives subset).
Implementations§
Source§impl Ec2Service
impl Ec2Service
pub fn new() -> Self
Sourcepub fn running_instance_count(&self, account_id: &str, region: &str) -> u64
pub fn running_instance_count(&self, account_id: &str, region: &str) -> u64
Count running instances for a given account+region pair — used by the billing meter to charge instance-hours. Stopped / terminated / pending instances are excluded since AWS doesn’t bill compute time for them.
Trait Implementations§
Source§impl Default for Ec2Service
impl Default for Ec2Service
Source§impl ServiceHandler for Ec2Service
impl ServiceHandler for Ec2Service
Source§fn service_name(&self) -> &str
fn service_name(&self) -> &str
The AWS service name (e.g., “s3”, “sqs”, “dynamodb”).
Source§fn signing_name(&self) -> &str
fn signing_name(&self) -> &str
The signing name used in SigV4 Authorization headers.
Usually the same as service_name, but not always.
Source§fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
operation: &'life1 str,
input: Value,
ctx: &'life2 RequestContext,
) -> Pin<Box<dyn Future<Output = Result<Value, AwsError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
operation: &'life1 str,
input: Value,
ctx: &'life2 RequestContext,
) -> Pin<Box<dyn Future<Output = Result<Value, AwsError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Handle an AWS API operation.
Source§fn routes(&self) -> Vec<RouteDefinition>
fn routes(&self) -> Vec<RouteDefinition>
Route definitions for REST-protocol services.
Not needed for RPC-style protocols (awsJson, awsQuery).
Source§fn handle_streaming<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
operation: &'life1 str,
input: Value,
ctx: &'life2 RequestContext,
) -> Pin<Box<dyn Future<Output = Result<HandlerResult, AwsError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn handle_streaming<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
operation: &'life1 str,
input: Value,
ctx: &'life2 RequestContext,
) -> Pin<Box<dyn Future<Output = Result<HandlerResult, AwsError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Streaming-aware variant. The default delegates to
handle and
wraps the JSON result so existing services don’t need to do
anything; services that genuinely stream (Bedrock data plane)
override this and return HandlerResult::Streaming.Source§fn snapshot(&self) -> Option<Vec<u8>>
fn snapshot(&self) -> Option<Vec<u8>>
Serialize the service’s state to bytes for persistence. Read more
Source§fn restore(&self, _data: &[u8]) -> Result<(), String>
fn restore(&self, _data: &[u8]) -> Result<(), String>
Restore the service’s state from a previous snapshot. Read more
Source§fn rehydrate(&self) -> Result<(), String>
fn rehydrate(&self) -> Result<(), String>
Called after every service has been restored from its
snapshot, before the gateway begins serving traffic. Read more
fn iam_action(&self, _operation: &str) -> Option<String>
fn iam_resource( &self, _operation: &str, _input: &Value, _ctx: &RequestContext, ) -> Option<String>
Source§fn tick<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn tick<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Periodic tick. The gateway spawns a single 1-second loop that
calls
tick on every registered service after the server is up.
Use this hook for time-driven behavior that doesn’t fit into the
request path: SQS visibility-timeout reclamation, DynamoDB TTL
expiry, Lambda event-source-mapping polling, S3 lifecycle
transitions, EventBridge schedule firing, SecretsManager
rotation, etc. Read moreAuto Trait Implementations§
impl Freeze for Ec2Service
impl !RefUnwindSafe for Ec2Service
impl Send for Ec2Service
impl Sync for Ec2Service
impl Unpin for Ec2Service
impl UnsafeUnpin for Ec2Service
impl !UnwindSafe for Ec2Service
Blanket Implementations§
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
Mutably borrows from an owned value. Read more