winterbaume_ec2instanceconnect/
state.rs1use std::collections::HashMap;
2
3use thiserror::Error;
4
5#[derive(Debug, Default)]
6pub struct Ec2InstanceConnectState {
7 pub endpoints: HashMap<String, Ec2InstanceConnectEndpoint>,
8}
9
10#[derive(Debug, Clone)]
12pub struct Ec2InstanceConnectEndpoint {
13 pub instance_connect_endpoint_id: String,
14 pub subnet_id: String,
15 pub vpc_id: String,
16 pub security_group_ids: Vec<String>,
17 pub state: String,
18 pub dns_name: Option<String>,
19 pub fips_dns_name: Option<String>,
20 pub network_interface_ids: Vec<String>,
21 pub owner_id: String,
22 pub availability_zone: String,
23 pub created_at: String,
24 pub tags: HashMap<String, String>,
25}
26
27#[derive(Debug, Error)]
28pub enum Ec2InstanceConnectError {
29 #[error("Missing X-Amz-Target header")]
30 MissingAction,
31
32 #[error("Invalid JSON body")]
33 SerializationException,
34
35 #[error("Could not find operation {action} for EC2 Instance Connect")]
36 InvalidAction { action: String },
37
38 #[error("InstanceId is required")]
39 InstanceIdRequired,
40
41 #[error("InstanceOSUser is required")]
42 InstanceOSUserRequired,
43
44 #[error("SSHPublicKey is required")]
45 SSHPublicKeyRequired,
46}