svix_webhook_with_clone/api/
operational_webhook_endpoint.rs1use super::{Ordering, PostOptions};
2use crate::{
3 apis::webhook_endpoint_api as operational_webhook_endpoint_api, error::Result, models::*,
4 Configuration,
5};
6
7#[derive(Default)]
8pub struct OperationalWebhookEndpointListOptions {
9 pub iterator: Option<String>,
10 pub limit: Option<i32>,
11 pub order: Option<Ordering>,
12}
13
14pub struct OperationalWebhookEndpoint<'a> {
15 cfg: &'a Configuration,
16}
17
18impl<'a> OperationalWebhookEndpoint<'a> {
19 pub(super) fn new(cfg: &'a Configuration) -> Self {
20 Self { cfg }
21 }
22
23 pub async fn list(
24 &self,
25 options: Option<OperationalWebhookEndpointListOptions>,
26 ) -> Result<ListResponseOperationalWebhookEndpointOut> {
27 let OperationalWebhookEndpointListOptions {
28 iterator,
29 limit,
30 order,
31 } = options.unwrap_or_default();
32 operational_webhook_endpoint_api::list_operational_webhook_endpoints(
33 self.cfg,
34 operational_webhook_endpoint_api::ListOperationalWebhookEndpointsParams {
35 order,
36 iterator,
37 limit,
38 },
39 )
40 .await
41 }
42
43 pub async fn create(
44 &self,
45 endpoint_in: OperationalWebhookEndpointIn,
46 options: Option<PostOptions>,
47 ) -> Result<OperationalWebhookEndpointOut> {
48 let PostOptions { idempotency_key } = options.unwrap_or_default();
49 operational_webhook_endpoint_api::create_operational_webhook_endpoint(
50 self.cfg,
51 operational_webhook_endpoint_api::CreateOperationalWebhookEndpointParams {
52 operational_webhook_endpoint_in: endpoint_in,
53 idempotency_key,
54 },
55 )
56 .await
57 }
58
59 pub async fn get(&self, endpoint_id: String) -> Result<OperationalWebhookEndpointOut> {
60 operational_webhook_endpoint_api::get_operational_webhook_endpoint(
61 self.cfg,
62 operational_webhook_endpoint_api::GetOperationalWebhookEndpointParams { endpoint_id },
63 )
64 .await
65 }
66
67 pub async fn update(
68 &self,
69 endpoint_id: String,
70 endpoint_update: OperationalWebhookEndpointUpdate,
71 ) -> Result<OperationalWebhookEndpointOut> {
72 operational_webhook_endpoint_api::update_operational_webhook_endpoint(
73 self.cfg,
74 operational_webhook_endpoint_api::UpdateOperationalWebhookEndpointParams {
75 endpoint_id,
76 operational_webhook_endpoint_update: endpoint_update,
77 },
78 )
79 .await
80 }
81
82 pub async fn delete(&self, endpoint_id: String) -> Result<()> {
83 operational_webhook_endpoint_api::delete_operational_webhook_endpoint(
84 self.cfg,
85 operational_webhook_endpoint_api::DeleteOperationalWebhookEndpointParams {
86 endpoint_id,
87 },
88 )
89 .await
90 }
91
92 pub async fn get_secret(
93 &self,
94 endpoint_id: String,
95 ) -> Result<OperationalWebhookEndpointSecretOut> {
96 operational_webhook_endpoint_api::get_operational_webhook_endpoint_secret(
97 self.cfg,
98 operational_webhook_endpoint_api::GetOperationalWebhookEndpointSecretParams {
99 endpoint_id,
100 },
101 )
102 .await
103 }
104
105 pub async fn rotate_secret(
106 &self,
107 endpoint_id: String,
108 endpoint_secret_rotate_in: OperationalWebhookEndpointSecretIn,
109 ) -> Result<()> {
110 operational_webhook_endpoint_api::rotate_operational_webhook_endpoint_secret(
111 self.cfg,
112 operational_webhook_endpoint_api::RotateOperationalWebhookEndpointSecretParams {
113 endpoint_id,
114 operational_webhook_endpoint_secret_in: endpoint_secret_rotate_in,
115 idempotency_key: None,
116 },
117 )
118 .await
119 }
120}