fly_sdk/machines/
services.rs1use serde::{Deserialize, Serialize};
2use std::collections::HashMap;
3
4#[derive(Serialize, Deserialize, Debug)]
5pub struct ServiceConfig {
6 pub autostart: Option<bool>,
7 pub autostop: Option<String>,
8 pub concurrency: Option<ConcurrencyConfig>,
9 pub ports: Option<Vec<MachinePort>>,
10 pub internal_port: Option<u16>,
11}
12
13#[derive(Serialize, Deserialize, Debug)]
14#[serde(rename_all = "lowercase")]
15pub enum AutostopEnum {
16 Off,
17 Stop,
18 Suspend,
19}
20
21#[derive(Serialize, Deserialize, Debug)]
22pub struct ConcurrencyConfig {
23 pub hard_limit: Option<u32>,
24 pub soft_limit: Option<u32>,
25 pub concurrency_type: Option<String>,
26}
27
28#[derive(Serialize, Deserialize, Debug)]
29#[serde(rename_all = "lowercase")]
30pub enum ConcurrencyTypeEnum {
31 Connections,
32 Requests,
33}
34
35#[derive(Serialize, Deserialize, Debug)]
36pub struct MachinePort {
37 pub end_port: Option<u16>,
38 pub force_https: Option<bool>,
39 pub handlers: Option<Vec<String>>,
40 pub http_options: Option<HttpOptions>,
41 pub proxy_proto_options: Option<ProxyProtoOptions>,
42 pub start_port: Option<u16>,
43 pub tls_options: Option<TlsOptions>,
44}
45
46#[derive(Serialize, Deserialize, Debug)]
47pub struct HttpOptions {
48 pub compress: Option<bool>,
49 pub h2_backend: Option<bool>,
50 pub headers_read_timeout: Option<u64>,
51 pub idle_timeout: Option<u64>,
52 pub response: Option<ResponseOptions>,
53}
54#[derive(Serialize, Deserialize, Debug)]
55pub struct ResponseOptions {
56 pub headers: Option<HashMap<String, String>>,
57 pub pristine: Option<bool>,
58}
59
60#[derive(Serialize, Deserialize, Debug)]
61pub struct ProxyProtoOptions {
62 pub version: Option<String>,
63}
64
65#[derive(Serialize, Deserialize, Debug)]
66pub struct TlsOptions {
67 pub alpn: Option<Vec<String>>,
68 pub default_self_signed: Option<bool>,
69 pub versions: Option<Vec<String>>,
70}