#[non_exhaustive]pub struct MonitorTriggerWrapper {
pub monitor_trigger: MonitorTrigger,
pub start_step_names: Option<Vec<String>>,
pub additional_properties: BTreeMap<String, Value>,
/* private fields */
}
Expand description
Schema for a Monitor-based trigger.
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.monitor_trigger: MonitorTrigger
Trigger a workflow from a Monitor. For automatic triggering a handle must be configured and the workflow must be published.
start_step_names: Option<Vec<String>>
A list of steps that run first after a trigger fires.
additional_properties: BTreeMap<String, Value>
Implementations§
Source§impl MonitorTriggerWrapper
impl MonitorTriggerWrapper
Sourcepub fn new(monitor_trigger: MonitorTrigger) -> MonitorTriggerWrapper
pub fn new(monitor_trigger: MonitorTrigger) -> MonitorTriggerWrapper
Examples found in repository?
examples/v2_workflow-automation_CreateWorkflow.rs (lines 71-77)
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 (lines 77-83)
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}
Sourcepub fn start_step_names(self, value: Vec<String>) -> Self
pub fn start_step_names(self, value: Vec<String>) -> Self
Examples found in repository?
examples/v2_workflow-automation_CreateWorkflow.rs (line 78)
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 84)
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 additional_properties(self, value: BTreeMap<String, Value>) -> Self
Trait Implementations§
Source§impl Clone for MonitorTriggerWrapper
impl Clone for MonitorTriggerWrapper
Source§fn clone(&self) -> MonitorTriggerWrapper
fn clone(&self) -> MonitorTriggerWrapper
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 MonitorTriggerWrapper
impl Debug for MonitorTriggerWrapper
Source§impl<'de> Deserialize<'de> for MonitorTriggerWrapper
impl<'de> Deserialize<'de> for MonitorTriggerWrapper
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 MonitorTriggerWrapper
impl PartialEq for MonitorTriggerWrapper
Source§impl Serialize for MonitorTriggerWrapper
impl Serialize for MonitorTriggerWrapper
impl StructuralPartialEq for MonitorTriggerWrapper
Auto Trait Implementations§
impl Freeze for MonitorTriggerWrapper
impl RefUnwindSafe for MonitorTriggerWrapper
impl Send for MonitorTriggerWrapper
impl Sync for MonitorTriggerWrapper
impl Unpin for MonitorTriggerWrapper
impl UnwindSafe for MonitorTriggerWrapper
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