#[non_exhaustive]pub struct GithubWebhookTrigger {
pub rate_limit: Option<TriggerRateLimit>,
pub additional_properties: BTreeMap<String, Value>,
/* private fields */
}
Expand description
Trigger a workflow from a GitHub webhook. To trigger a workflow from GitHub, you must set a webhookSecret
. In your GitHub Webhook Settings, set the Payload URL to “base_url”/api/v2/workflows/“workflow_id”/webhook?orgId=“org_id”, select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.rate_limit: Option<TriggerRateLimit>
Defines a rate limit for a trigger.
additional_properties: BTreeMap<String, Value>
Implementations§
Source§impl GithubWebhookTrigger
impl GithubWebhookTrigger
Sourcepub fn new() -> GithubWebhookTrigger
pub fn new() -> GithubWebhookTrigger
Examples found in repository?
examples/v2_workflow-automation_CreateWorkflow.rs (line 81)
30async fn main() {
31 let body = CreateWorkflowRequest::new(WorkflowData::new(
32 WorkflowDataAttributes::new(
33 "Example Workflow".to_string(),
34 Spec::new()
35 .connection_envs(vec![ConnectionEnv::new(ConnectionEnvEnv::DEFAULT)
36 .connections(vec![Connection::new(
37 "11111111-1111-1111-1111-111111111111".to_string(),
38 "INTEGRATION_DATADOG".to_string(),
39 )])])
40 .handle("my-handle".to_string())
41 .input_schema(InputSchema::new().parameters(vec![
42 InputSchemaParameters::new(
43 "input".to_string(),
44 InputSchemaParametersType::STRING,
45 ).default_value(Value::from("default"))
46 ]))
47 .output_schema(OutputSchema::new().parameters(vec![
48 OutputSchemaParameters::new(
49 "output".to_string(),
50 OutputSchemaParametersType::ARRAY_OBJECT,
51 ).value(Value::from("outputValue"))
52 ]))
53 .steps(vec![
54 Step::new(
55 "com.datadoghq.dd.monitor.listMonitors".to_string(),
56 "Step1".to_string(),
57 )
58 .connection_label("INTEGRATION_DATADOG".to_string())
59 .outbound_edges(vec![OutboundEdge::new(
60 "main".to_string(),
61 "Step2".to_string(),
62 )])
63 .parameters(vec![Parameter::new(
64 "tags".to_string(),
65 Value::from("service:monitoring"),
66 )]),
67 Step::new("com.datadoghq.core.noop".to_string(), "Step2".to_string()),
68 ])
69 .triggers(vec![
70 Trigger::MonitorTriggerWrapper(Box::new(
71 MonitorTriggerWrapper::new(
72 MonitorTrigger::new().rate_limit(
73 TriggerRateLimit::new()
74 .count(1)
75 .interval("3600s".to_string()),
76 ),
77 )
78 .start_step_names(vec!["Step1".to_string()]),
79 )),
80 Trigger::GithubWebhookTriggerWrapper(Box::new(
81 GithubWebhookTriggerWrapper::new(GithubWebhookTrigger::new())
82 .start_step_names(vec!["Step1".to_string()]),
83 )),
84 ]),
85 )
86 .description("A sample workflow.".to_string())
87 .published(true)
88 .tags(vec![
89 "team:infra".to_string(),
90 "service:monitoring".to_string(),
91 "foo:bar".to_string(),
92 ]),
93 WorkflowDataType::WORKFLOWS,
94 ));
95 let configuration = datadog::Configuration::new();
96 let api = WorkflowAutomationAPI::with_config(configuration);
97 let resp = api.create_workflow(body).await;
98 if let Ok(value) = resp {
99 println!("{:#?}", value);
100 } else {
101 println!("{:#?}", resp.unwrap_err());
102 }
103}
More examples
examples/v2_workflow-automation_UpdateWorkflow.rs (line 87)
30async fn main() {
31 // there is a valid "workflow" in the system
32 let workflow_data_id = std::env::var("WORKFLOW_DATA_ID").unwrap();
33 let body = UpdateWorkflowRequest::new(
34 WorkflowDataUpdate::new(
35 WorkflowDataUpdateAttributes::new()
36 .description("A sample workflow.".to_string())
37 .name("Example Workflow".to_string())
38 .published(true)
39 .spec(
40 Spec::new()
41 .connection_envs(vec![ConnectionEnv::new(ConnectionEnvEnv::DEFAULT)
42 .connections(vec![Connection::new(
43 "11111111-1111-1111-1111-111111111111".to_string(),
44 "INTEGRATION_DATADOG".to_string(),
45 )])])
46 .handle("my-handle".to_string())
47 .input_schema(InputSchema::new().parameters(vec![
48 InputSchemaParameters::new(
49 "input".to_string(),
50 InputSchemaParametersType::STRING,
51 ).default_value(Value::from("default"))
52 ]))
53 .output_schema(OutputSchema::new().parameters(vec![
54 OutputSchemaParameters::new(
55 "output".to_string(),
56 OutputSchemaParametersType::ARRAY_OBJECT,
57 ).value(Value::from("outputValue"))
58 ]))
59 .steps(vec![
60 Step::new(
61 "com.datadoghq.dd.monitor.listMonitors".to_string(),
62 "Step1".to_string(),
63 )
64 .connection_label("INTEGRATION_DATADOG".to_string())
65 .outbound_edges(vec![OutboundEdge::new(
66 "main".to_string(),
67 "Step2".to_string(),
68 )])
69 .parameters(vec![Parameter::new(
70 "tags".to_string(),
71 Value::from("service:monitoring"),
72 )]),
73 Step::new("com.datadoghq.core.noop".to_string(), "Step2".to_string()),
74 ])
75 .triggers(vec![
76 Trigger::MonitorTriggerWrapper(Box::new(
77 MonitorTriggerWrapper::new(
78 MonitorTrigger::new().rate_limit(
79 TriggerRateLimit::new()
80 .count(1)
81 .interval("3600s".to_string()),
82 ),
83 )
84 .start_step_names(vec!["Step1".to_string()]),
85 )),
86 Trigger::GithubWebhookTriggerWrapper(Box::new(
87 GithubWebhookTriggerWrapper::new(GithubWebhookTrigger::new())
88 .start_step_names(vec!["Step1".to_string()]),
89 )),
90 ]),
91 )
92 .tags(vec![
93 "team:infra".to_string(),
94 "service:monitoring".to_string(),
95 "foo:bar".to_string(),
96 ]),
97 WorkflowDataType::WORKFLOWS,
98 )
99 .id("22222222-2222-2222-2222-222222222222".to_string()),
100 );
101 let configuration = datadog::Configuration::new();
102 let api = WorkflowAutomationAPI::with_config(configuration);
103 let resp = api.update_workflow(workflow_data_id.clone(), body).await;
104 if let Ok(value) = resp {
105 println!("{:#?}", value);
106 } else {
107 println!("{:#?}", resp.unwrap_err());
108 }
109}
pub fn rate_limit(self, value: TriggerRateLimit) -> Self
pub fn additional_properties(self, value: BTreeMap<String, Value>) -> Self
Trait Implementations§
Source§impl Clone for GithubWebhookTrigger
impl Clone for GithubWebhookTrigger
Source§fn clone(&self) -> GithubWebhookTrigger
fn clone(&self) -> GithubWebhookTrigger
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for GithubWebhookTrigger
impl Debug for GithubWebhookTrigger
Source§impl Default for GithubWebhookTrigger
impl Default for GithubWebhookTrigger
Source§impl<'de> Deserialize<'de> for GithubWebhookTrigger
impl<'de> Deserialize<'de> for GithubWebhookTrigger
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for GithubWebhookTrigger
impl PartialEq for GithubWebhookTrigger
Source§impl Serialize for GithubWebhookTrigger
impl Serialize for GithubWebhookTrigger
impl StructuralPartialEq for GithubWebhookTrigger
Auto Trait Implementations§
impl Freeze for GithubWebhookTrigger
impl RefUnwindSafe for GithubWebhookTrigger
impl Send for GithubWebhookTrigger
impl Sync for GithubWebhookTrigger
impl Unpin for GithubWebhookTrigger
impl UnwindSafe for GithubWebhookTrigger
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more