1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct NewHttpTrigger {
16 #[serde(rename = "path")]
18 pub path: String,
19 #[serde(rename = "script_path")]
21 pub script_path: String,
22 #[serde(rename = "route_path")]
24 pub route_path: String,
25 #[serde(rename = "workspaced_route", skip_serializing_if = "Option::is_none")]
27 pub workspaced_route: Option<bool>,
28 #[serde(rename = "summary", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
30 pub summary: Option<Option<String>>,
31 #[serde(rename = "description", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
33 pub description: Option<Option<String>>,
34 #[serde(rename = "static_asset_config", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
35 pub static_asset_config: Option<Option<Box<models::NewHttpTriggerStaticAssetConfig>>>,
36 #[serde(rename = "is_flow")]
38 pub is_flow: bool,
39 #[serde(rename = "http_method")]
40 pub http_method: models::HttpMethod,
41 #[serde(rename = "authentication_resource_path", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
43 pub authentication_resource_path: Option<Option<String>>,
44 #[serde(rename = "is_async", skip_serializing_if = "Option::is_none")]
46 pub is_async: Option<bool>,
47 #[serde(rename = "request_type", skip_serializing_if = "Option::is_none")]
48 pub request_type: Option<models::HttpRequestType>,
49 #[serde(rename = "authentication_method")]
50 pub authentication_method: models::AuthenticationMethod,
51 #[serde(rename = "is_static_website")]
53 pub is_static_website: bool,
54 #[serde(rename = "wrap_body", skip_serializing_if = "Option::is_none")]
56 pub wrap_body: Option<bool>,
57 #[serde(rename = "mode", skip_serializing_if = "Option::is_none")]
58 pub mode: Option<models::TriggerMode>,
59 #[serde(rename = "raw_string", skip_serializing_if = "Option::is_none")]
61 pub raw_string: Option<bool>,
62 #[serde(rename = "allowed_origins", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
64 pub allowed_origins: Option<Option<Vec<String>>>,
65 #[serde(rename = "error_handler_path", skip_serializing_if = "Option::is_none")]
67 pub error_handler_path: Option<String>,
68 #[serde(rename = "error_handler_args", skip_serializing_if = "Option::is_none")]
70 pub error_handler_args: Option<std::collections::HashMap<String, serde_json::Value>>,
71 #[serde(rename = "retry", skip_serializing_if = "Option::is_none")]
72 pub retry: Option<Box<models::Retry>>,
73 #[serde(rename = "permissioned_as", skip_serializing_if = "Option::is_none")]
75 pub permissioned_as: Option<String>,
76 #[serde(rename = "preserve_permissioned_as", skip_serializing_if = "Option::is_none")]
78 pub preserve_permissioned_as: Option<bool>,
79 #[serde(rename = "labels", skip_serializing_if = "Option::is_none")]
80 pub labels: Option<Vec<String>>,
81}
82
83impl NewHttpTrigger {
84 pub fn new(path: String, script_path: String, route_path: String, is_flow: bool, http_method: models::HttpMethod, authentication_method: models::AuthenticationMethod, is_static_website: bool) -> NewHttpTrigger {
85 NewHttpTrigger {
86 path,
87 script_path,
88 route_path,
89 workspaced_route: None,
90 summary: None,
91 description: None,
92 static_asset_config: None,
93 is_flow,
94 http_method,
95 authentication_resource_path: None,
96 is_async: None,
97 request_type: None,
98 authentication_method,
99 is_static_website,
100 wrap_body: None,
101 mode: None,
102 raw_string: None,
103 allowed_origins: None,
104 error_handler_path: None,
105 error_handler_args: None,
106 retry: None,
107 permissioned_as: None,
108 preserve_permissioned_as: None,
109 labels: None,
110 }
111 }
112}
113