fastly_api/apis/
mod.rs

1use std::error;
2use std::fmt;
3
4#[derive(Debug, Clone)]
5pub struct ResponseContent<T> {
6    pub status: reqwest::StatusCode,
7    pub content: String,
8    pub entity: Option<T>,
9}
10
11#[derive(Debug)]
12pub enum Error<T> {
13    Reqwest(reqwest::Error),
14    Serde(serde_json::Error),
15    Io(std::io::Error),
16    ResponseError(ResponseContent<T>),
17}
18
19impl <T> fmt::Display for Error<T> {
20    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
21        let (module, e) = match self {
22            Error::Reqwest(e) => ("reqwest", e.to_string()),
23            Error::Serde(e) => ("serde", e.to_string()),
24            Error::Io(e) => ("IO", e.to_string()),
25            Error::ResponseError(e) => ("response", format!("status code {}", e.status)),
26        };
27        write!(f, "error in {}: {}", module, e)
28    }
29}
30
31impl <T: fmt::Debug> error::Error for Error<T> {
32    fn source(&self) -> Option<&(dyn error::Error + 'static)> {
33        Some(match self {
34            Error::Reqwest(e) => e,
35            Error::Serde(e) => e,
36            Error::Io(e) => e,
37            Error::ResponseError(_) => return None,
38        })
39    }
40}
41
42impl <T> From<reqwest::Error> for Error<T> {
43    fn from(e: reqwest::Error) -> Self {
44        Error::Reqwest(e)
45    }
46}
47
48impl <T> From<serde_json::Error> for Error<T> {
49    fn from(e: serde_json::Error) -> Self {
50        Error::Serde(e)
51    }
52}
53
54impl <T> From<std::io::Error> for Error<T> {
55    fn from(e: std::io::Error) -> Self {
56        Error::Io(e)
57    }
58}
59
60pub fn urlencode<T: AsRef<str>>(s: T) -> String {
61    ::url::form_urlencoded::byte_serialize(s.as_ref().as_bytes()).collect()
62}
63
64pub mod acl_api;
65pub mod acl_entry_api;
66pub mod acls_in_compute_api;
67pub mod apex_redirect_api;
68pub mod automation_tokens_api;
69pub mod backend_api;
70pub mod billing_address_api;
71pub mod billing_invoices_api;
72pub mod billing_usage_metrics_api;
73pub mod cache_settings_api;
74pub mod condition_api;
75pub mod config_store_api;
76pub mod config_store_item_api;
77pub mod contact_api;
78pub mod content_api;
79pub mod customer_api;
80pub mod customer_addresses_api;
81pub mod dictionary_api;
82pub mod dictionary_info_api;
83pub mod dictionary_item_api;
84pub mod diff_api;
85pub mod director_api;
86pub mod director_backend_api;
87pub mod domain_api;
88pub mod domain_inspector_historical_api;
89pub mod domain_inspector_realtime_api;
90pub mod domain_ownerships_api;
91pub mod events_api;
92pub mod gzip_api;
93pub mod header_api;
94pub mod healthcheck_api;
95pub mod http3_api;
96pub mod iam_permissions_api;
97pub mod iam_roles_api;
98pub mod iam_service_groups_api;
99pub mod iam_user_groups_api;
100pub mod image_optimizer_default_settings_api;
101pub mod insights_api;
102pub mod invitations_api;
103pub mod kv_store_api;
104pub mod kv_store_item_api;
105pub mod log_explorer_api;
106pub mod logging_azureblob_api;
107pub mod logging_bigquery_api;
108pub mod logging_cloudfiles_api;
109pub mod logging_datadog_api;
110pub mod logging_digitalocean_api;
111pub mod logging_elasticsearch_api;
112pub mod logging_ftp_api;
113pub mod logging_gcs_api;
114pub mod logging_grafanacloudlogs_api;
115pub mod logging_heroku_api;
116pub mod logging_honeycomb_api;
117pub mod logging_https_api;
118pub mod logging_kafka_api;
119pub mod logging_kinesis_api;
120pub mod logging_logentries_api;
121pub mod logging_loggly_api;
122pub mod logging_logshuttle_api;
123pub mod logging_newrelic_api;
124pub mod logging_newrelicotlp_api;
125pub mod logging_openstack_api;
126pub mod logging_papertrail_api;
127pub mod logging_pubsub_api;
128pub mod logging_s3_api;
129pub mod logging_scalyr_api;
130pub mod logging_sftp_api;
131pub mod logging_splunk_api;
132pub mod logging_sumologic_api;
133pub mod logging_syslog_api;
134pub mod mutual_authentication_api;
135pub mod object_storage_access_keys_api;
136pub mod observability_custom_dashboards_api;
137pub mod origin_inspector_historical_api;
138pub mod origin_inspector_realtime_api;
139pub mod package_api;
140pub mod pool_api;
141pub mod pop_api;
142pub mod product_ai_accelerator_api;
143pub mod product_bot_management_api;
144pub mod product_brotli_compression_api;
145pub mod product_ddos_protection_api;
146pub mod product_domain_inspector_api;
147pub mod product_fanout_api;
148pub mod product_image_optimizer_api;
149pub mod product_log_explorer_insights_api;
150pub mod product_ngwaf_api;
151pub mod product_object_storage_api;
152pub mod product_origin_inspector_api;
153pub mod product_websockets_api;
154pub mod public_ip_list_api;
155pub mod publish_api;
156pub mod purge_api;
157pub mod rate_limiter_api;
158pub mod realtime_api;
159pub mod request_settings_api;
160pub mod resource_api;
161pub mod response_object_api;
162pub mod secret_store_api;
163pub mod secret_store_item_api;
164pub mod server_api;
165pub mod service_api;
166pub mod service_authorizations_api;
167pub mod settings_api;
168pub mod snippet_api;
169pub mod star_api;
170pub mod stats_api;
171pub mod sudo_api;
172pub mod tls_activations_api;
173pub mod tls_bulk_certificates_api;
174pub mod tls_certificates_api;
175pub mod tls_configurations_api;
176pub mod tls_csrs_api;
177pub mod tls_domains_api;
178pub mod tls_private_keys_api;
179pub mod tls_subscriptions_api;
180pub mod tokens_api;
181pub mod user_api;
182pub mod vcl_api;
183pub mod vcl_diff_api;
184pub mod version_api;
185pub mod waf_active_rules_api;
186pub mod waf_exclusions_api;
187pub mod waf_firewall_versions_api;
188pub mod waf_firewalls_api;
189pub mod waf_rule_revisions_api;
190pub mod waf_rules_api;
191pub mod waf_tags_api;
192pub mod whole_platform_ddos_historical_api;
193
194pub mod configuration;