fly_sdk/machines/
services.rs

1use 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}