#[non_exhaustive]pub struct Spec {
pub annotations: Option<Vec<Annotation>>,
pub connection_envs: Option<Vec<ConnectionEnv>>,
pub handle: Option<String>,
pub input_schema: Option<InputSchema>,
pub output_schema: Option<OutputSchema>,
pub steps: Option<Vec<Step>>,
pub triggers: Option<Vec<Trigger>>,
pub additional_properties: BTreeMap<String, Value>,
/* private fields */
}
Expand description
The spec defines what the workflow does.
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.annotations: Option<Vec<Annotation>>
A list of annotations used in the workflow. These are like sticky notes for your workflow!
connection_envs: Option<Vec<ConnectionEnv>>
A list of connections or connection groups used in the workflow.
handle: Option<String>
Unique identifier used to trigger workflows automatically in Datadog.
input_schema: Option<InputSchema>
A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.
output_schema: Option<OutputSchema>
A list of output parameters for the workflow.
steps: Option<Vec<Step>>
A Step
is a sub-component of a workflow. Each Step
performs an action.
triggers: Option<Vec<Trigger>>
The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.
additional_properties: BTreeMap<String, Value>
Implementations§
Source§impl Spec
impl Spec
Sourcepub fn new() -> Spec
pub fn new() -> Spec
Examples found in repository?
examples/v2_workflow-automation_CreateWorkflow.rs (line 34)
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 .input_schema(InputSchema::new().parameters(vec![
41 InputSchemaParameters::new(
42 "input".to_string(),
43 InputSchemaParametersType::STRING,
44 ).default_value(Value::from("default"))
45 ]))
46 .output_schema(OutputSchema::new().parameters(vec![
47 OutputSchemaParameters::new(
48 "output".to_string(),
49 OutputSchemaParametersType::ARRAY_OBJECT,
50 ).value(Value::from("outputValue"))
51 ]))
52 .steps(vec![
53 Step::new(
54 "com.datadoghq.dd.monitor.listMonitors".to_string(),
55 "Step1".to_string(),
56 )
57 .connection_label("INTEGRATION_DATADOG".to_string())
58 .outbound_edges(vec![OutboundEdge::new(
59 "main".to_string(),
60 "Step2".to_string(),
61 )])
62 .parameters(vec![Parameter::new(
63 "tags".to_string(),
64 Value::from("service:monitoring"),
65 )]),
66 Step::new("com.datadoghq.core.noop".to_string(), "Step2".to_string()),
67 ])
68 .triggers(vec![
69 Trigger::MonitorTriggerWrapper(Box::new(
70 MonitorTriggerWrapper::new(
71 MonitorTrigger::new().rate_limit(
72 TriggerRateLimit::new()
73 .count(1)
74 .interval("3600s".to_string()),
75 ),
76 )
77 .start_step_names(vec!["Step1".to_string()]),
78 )),
79 Trigger::GithubWebhookTriggerWrapper(Box::new(
80 GithubWebhookTriggerWrapper::new(GithubWebhookTrigger::new())
81 .start_step_names(vec!["Step1".to_string()]),
82 )),
83 ]),
84 )
85 .description("A sample workflow.".to_string())
86 .published(true)
87 .tags(vec![
88 "team:infra".to_string(),
89 "service:monitoring".to_string(),
90 "foo:bar".to_string(),
91 ]),
92 WorkflowDataType::WORKFLOWS,
93 ));
94 let configuration = datadog::Configuration::new();
95 let api = WorkflowAutomationAPI::with_config(configuration);
96 let resp = api.create_workflow(body).await;
97 if let Ok(value) = resp {
98 println!("{:#?}", value);
99 } else {
100 println!("{:#?}", resp.unwrap_err());
101 }
102}
More examples
examples/v2_workflow-automation_UpdateWorkflow.rs (line 40)
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 .input_schema(InputSchema::new().parameters(vec![
47 InputSchemaParameters::new(
48 "input".to_string(),
49 InputSchemaParametersType::STRING,
50 ).default_value(Value::from("default"))
51 ]))
52 .output_schema(OutputSchema::new().parameters(vec![
53 OutputSchemaParameters::new(
54 "output".to_string(),
55 OutputSchemaParametersType::ARRAY_OBJECT,
56 ).value(Value::from("outputValue"))
57 ]))
58 .steps(vec![
59 Step::new(
60 "com.datadoghq.dd.monitor.listMonitors".to_string(),
61 "Step1".to_string(),
62 )
63 .connection_label("INTEGRATION_DATADOG".to_string())
64 .outbound_edges(vec![OutboundEdge::new(
65 "main".to_string(),
66 "Step2".to_string(),
67 )])
68 .parameters(vec![Parameter::new(
69 "tags".to_string(),
70 Value::from("service:monitoring"),
71 )]),
72 Step::new("com.datadoghq.core.noop".to_string(), "Step2".to_string()),
73 ])
74 .triggers(vec![
75 Trigger::MonitorTriggerWrapper(Box::new(
76 MonitorTriggerWrapper::new(
77 MonitorTrigger::new().rate_limit(
78 TriggerRateLimit::new()
79 .count(1)
80 .interval("3600s".to_string()),
81 ),
82 )
83 .start_step_names(vec!["Step1".to_string()]),
84 )),
85 Trigger::GithubWebhookTriggerWrapper(Box::new(
86 GithubWebhookTriggerWrapper::new(GithubWebhookTrigger::new())
87 .start_step_names(vec!["Step1".to_string()]),
88 )),
89 ]),
90 )
91 .tags(vec![
92 "team:infra".to_string(),
93 "service:monitoring".to_string(),
94 "foo:bar".to_string(),
95 ]),
96 WorkflowDataType::WORKFLOWS,
97 )
98 .id("22222222-2222-2222-2222-222222222222".to_string()),
99 );
100 let configuration = datadog::Configuration::new();
101 let api = WorkflowAutomationAPI::with_config(configuration);
102 let resp = api.update_workflow(workflow_data_id.clone(), body).await;
103 if let Ok(value) = resp {
104 println!("{:#?}", value);
105 } else {
106 println!("{:#?}", resp.unwrap_err());
107 }
108}
pub fn annotations(self, value: Vec<Annotation>) -> Self
Sourcepub fn connection_envs(self, value: Vec<ConnectionEnv>) -> Self
pub fn connection_envs(self, value: Vec<ConnectionEnv>) -> Self
Examples found in repository?
examples/v2_workflow-automation_CreateWorkflow.rs (lines 35-39)
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 .input_schema(InputSchema::new().parameters(vec![
41 InputSchemaParameters::new(
42 "input".to_string(),
43 InputSchemaParametersType::STRING,
44 ).default_value(Value::from("default"))
45 ]))
46 .output_schema(OutputSchema::new().parameters(vec![
47 OutputSchemaParameters::new(
48 "output".to_string(),
49 OutputSchemaParametersType::ARRAY_OBJECT,
50 ).value(Value::from("outputValue"))
51 ]))
52 .steps(vec![
53 Step::new(
54 "com.datadoghq.dd.monitor.listMonitors".to_string(),
55 "Step1".to_string(),
56 )
57 .connection_label("INTEGRATION_DATADOG".to_string())
58 .outbound_edges(vec![OutboundEdge::new(
59 "main".to_string(),
60 "Step2".to_string(),
61 )])
62 .parameters(vec![Parameter::new(
63 "tags".to_string(),
64 Value::from("service:monitoring"),
65 )]),
66 Step::new("com.datadoghq.core.noop".to_string(), "Step2".to_string()),
67 ])
68 .triggers(vec![
69 Trigger::MonitorTriggerWrapper(Box::new(
70 MonitorTriggerWrapper::new(
71 MonitorTrigger::new().rate_limit(
72 TriggerRateLimit::new()
73 .count(1)
74 .interval("3600s".to_string()),
75 ),
76 )
77 .start_step_names(vec!["Step1".to_string()]),
78 )),
79 Trigger::GithubWebhookTriggerWrapper(Box::new(
80 GithubWebhookTriggerWrapper::new(GithubWebhookTrigger::new())
81 .start_step_names(vec!["Step1".to_string()]),
82 )),
83 ]),
84 )
85 .description("A sample workflow.".to_string())
86 .published(true)
87 .tags(vec![
88 "team:infra".to_string(),
89 "service:monitoring".to_string(),
90 "foo:bar".to_string(),
91 ]),
92 WorkflowDataType::WORKFLOWS,
93 ));
94 let configuration = datadog::Configuration::new();
95 let api = WorkflowAutomationAPI::with_config(configuration);
96 let resp = api.create_workflow(body).await;
97 if let Ok(value) = resp {
98 println!("{:#?}", value);
99 } else {
100 println!("{:#?}", resp.unwrap_err());
101 }
102}
More examples
examples/v2_workflow-automation_UpdateWorkflow.rs (lines 41-45)
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 .input_schema(InputSchema::new().parameters(vec![
47 InputSchemaParameters::new(
48 "input".to_string(),
49 InputSchemaParametersType::STRING,
50 ).default_value(Value::from("default"))
51 ]))
52 .output_schema(OutputSchema::new().parameters(vec![
53 OutputSchemaParameters::new(
54 "output".to_string(),
55 OutputSchemaParametersType::ARRAY_OBJECT,
56 ).value(Value::from("outputValue"))
57 ]))
58 .steps(vec![
59 Step::new(
60 "com.datadoghq.dd.monitor.listMonitors".to_string(),
61 "Step1".to_string(),
62 )
63 .connection_label("INTEGRATION_DATADOG".to_string())
64 .outbound_edges(vec![OutboundEdge::new(
65 "main".to_string(),
66 "Step2".to_string(),
67 )])
68 .parameters(vec![Parameter::new(
69 "tags".to_string(),
70 Value::from("service:monitoring"),
71 )]),
72 Step::new("com.datadoghq.core.noop".to_string(), "Step2".to_string()),
73 ])
74 .triggers(vec![
75 Trigger::MonitorTriggerWrapper(Box::new(
76 MonitorTriggerWrapper::new(
77 MonitorTrigger::new().rate_limit(
78 TriggerRateLimit::new()
79 .count(1)
80 .interval("3600s".to_string()),
81 ),
82 )
83 .start_step_names(vec!["Step1".to_string()]),
84 )),
85 Trigger::GithubWebhookTriggerWrapper(Box::new(
86 GithubWebhookTriggerWrapper::new(GithubWebhookTrigger::new())
87 .start_step_names(vec!["Step1".to_string()]),
88 )),
89 ]),
90 )
91 .tags(vec![
92 "team:infra".to_string(),
93 "service:monitoring".to_string(),
94 "foo:bar".to_string(),
95 ]),
96 WorkflowDataType::WORKFLOWS,
97 )
98 .id("22222222-2222-2222-2222-222222222222".to_string()),
99 );
100 let configuration = datadog::Configuration::new();
101 let api = WorkflowAutomationAPI::with_config(configuration);
102 let resp = api.update_workflow(workflow_data_id.clone(), body).await;
103 if let Ok(value) = resp {
104 println!("{:#?}", value);
105 } else {
106 println!("{:#?}", resp.unwrap_err());
107 }
108}
pub fn handle(self, value: String) -> Self
Sourcepub fn input_schema(self, value: InputSchema) -> Self
pub fn input_schema(self, value: InputSchema) -> Self
Examples found in repository?
examples/v2_workflow-automation_CreateWorkflow.rs (lines 40-45)
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 .input_schema(InputSchema::new().parameters(vec![
41 InputSchemaParameters::new(
42 "input".to_string(),
43 InputSchemaParametersType::STRING,
44 ).default_value(Value::from("default"))
45 ]))
46 .output_schema(OutputSchema::new().parameters(vec![
47 OutputSchemaParameters::new(
48 "output".to_string(),
49 OutputSchemaParametersType::ARRAY_OBJECT,
50 ).value(Value::from("outputValue"))
51 ]))
52 .steps(vec![
53 Step::new(
54 "com.datadoghq.dd.monitor.listMonitors".to_string(),
55 "Step1".to_string(),
56 )
57 .connection_label("INTEGRATION_DATADOG".to_string())
58 .outbound_edges(vec![OutboundEdge::new(
59 "main".to_string(),
60 "Step2".to_string(),
61 )])
62 .parameters(vec![Parameter::new(
63 "tags".to_string(),
64 Value::from("service:monitoring"),
65 )]),
66 Step::new("com.datadoghq.core.noop".to_string(), "Step2".to_string()),
67 ])
68 .triggers(vec![
69 Trigger::MonitorTriggerWrapper(Box::new(
70 MonitorTriggerWrapper::new(
71 MonitorTrigger::new().rate_limit(
72 TriggerRateLimit::new()
73 .count(1)
74 .interval("3600s".to_string()),
75 ),
76 )
77 .start_step_names(vec!["Step1".to_string()]),
78 )),
79 Trigger::GithubWebhookTriggerWrapper(Box::new(
80 GithubWebhookTriggerWrapper::new(GithubWebhookTrigger::new())
81 .start_step_names(vec!["Step1".to_string()]),
82 )),
83 ]),
84 )
85 .description("A sample workflow.".to_string())
86 .published(true)
87 .tags(vec![
88 "team:infra".to_string(),
89 "service:monitoring".to_string(),
90 "foo:bar".to_string(),
91 ]),
92 WorkflowDataType::WORKFLOWS,
93 ));
94 let configuration = datadog::Configuration::new();
95 let api = WorkflowAutomationAPI::with_config(configuration);
96 let resp = api.create_workflow(body).await;
97 if let Ok(value) = resp {
98 println!("{:#?}", value);
99 } else {
100 println!("{:#?}", resp.unwrap_err());
101 }
102}
More examples
examples/v2_workflow-automation_UpdateWorkflow.rs (lines 46-51)
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 .input_schema(InputSchema::new().parameters(vec![
47 InputSchemaParameters::new(
48 "input".to_string(),
49 InputSchemaParametersType::STRING,
50 ).default_value(Value::from("default"))
51 ]))
52 .output_schema(OutputSchema::new().parameters(vec![
53 OutputSchemaParameters::new(
54 "output".to_string(),
55 OutputSchemaParametersType::ARRAY_OBJECT,
56 ).value(Value::from("outputValue"))
57 ]))
58 .steps(vec![
59 Step::new(
60 "com.datadoghq.dd.monitor.listMonitors".to_string(),
61 "Step1".to_string(),
62 )
63 .connection_label("INTEGRATION_DATADOG".to_string())
64 .outbound_edges(vec![OutboundEdge::new(
65 "main".to_string(),
66 "Step2".to_string(),
67 )])
68 .parameters(vec![Parameter::new(
69 "tags".to_string(),
70 Value::from("service:monitoring"),
71 )]),
72 Step::new("com.datadoghq.core.noop".to_string(), "Step2".to_string()),
73 ])
74 .triggers(vec![
75 Trigger::MonitorTriggerWrapper(Box::new(
76 MonitorTriggerWrapper::new(
77 MonitorTrigger::new().rate_limit(
78 TriggerRateLimit::new()
79 .count(1)
80 .interval("3600s".to_string()),
81 ),
82 )
83 .start_step_names(vec!["Step1".to_string()]),
84 )),
85 Trigger::GithubWebhookTriggerWrapper(Box::new(
86 GithubWebhookTriggerWrapper::new(GithubWebhookTrigger::new())
87 .start_step_names(vec!["Step1".to_string()]),
88 )),
89 ]),
90 )
91 .tags(vec![
92 "team:infra".to_string(),
93 "service:monitoring".to_string(),
94 "foo:bar".to_string(),
95 ]),
96 WorkflowDataType::WORKFLOWS,
97 )
98 .id("22222222-2222-2222-2222-222222222222".to_string()),
99 );
100 let configuration = datadog::Configuration::new();
101 let api = WorkflowAutomationAPI::with_config(configuration);
102 let resp = api.update_workflow(workflow_data_id.clone(), body).await;
103 if let Ok(value) = resp {
104 println!("{:#?}", value);
105 } else {
106 println!("{:#?}", resp.unwrap_err());
107 }
108}
Sourcepub fn output_schema(self, value: OutputSchema) -> Self
pub fn output_schema(self, value: OutputSchema) -> Self
Examples found in repository?
examples/v2_workflow-automation_CreateWorkflow.rs (lines 46-51)
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 .input_schema(InputSchema::new().parameters(vec![
41 InputSchemaParameters::new(
42 "input".to_string(),
43 InputSchemaParametersType::STRING,
44 ).default_value(Value::from("default"))
45 ]))
46 .output_schema(OutputSchema::new().parameters(vec![
47 OutputSchemaParameters::new(
48 "output".to_string(),
49 OutputSchemaParametersType::ARRAY_OBJECT,
50 ).value(Value::from("outputValue"))
51 ]))
52 .steps(vec![
53 Step::new(
54 "com.datadoghq.dd.monitor.listMonitors".to_string(),
55 "Step1".to_string(),
56 )
57 .connection_label("INTEGRATION_DATADOG".to_string())
58 .outbound_edges(vec![OutboundEdge::new(
59 "main".to_string(),
60 "Step2".to_string(),
61 )])
62 .parameters(vec![Parameter::new(
63 "tags".to_string(),
64 Value::from("service:monitoring"),
65 )]),
66 Step::new("com.datadoghq.core.noop".to_string(), "Step2".to_string()),
67 ])
68 .triggers(vec![
69 Trigger::MonitorTriggerWrapper(Box::new(
70 MonitorTriggerWrapper::new(
71 MonitorTrigger::new().rate_limit(
72 TriggerRateLimit::new()
73 .count(1)
74 .interval("3600s".to_string()),
75 ),
76 )
77 .start_step_names(vec!["Step1".to_string()]),
78 )),
79 Trigger::GithubWebhookTriggerWrapper(Box::new(
80 GithubWebhookTriggerWrapper::new(GithubWebhookTrigger::new())
81 .start_step_names(vec!["Step1".to_string()]),
82 )),
83 ]),
84 )
85 .description("A sample workflow.".to_string())
86 .published(true)
87 .tags(vec![
88 "team:infra".to_string(),
89 "service:monitoring".to_string(),
90 "foo:bar".to_string(),
91 ]),
92 WorkflowDataType::WORKFLOWS,
93 ));
94 let configuration = datadog::Configuration::new();
95 let api = WorkflowAutomationAPI::with_config(configuration);
96 let resp = api.create_workflow(body).await;
97 if let Ok(value) = resp {
98 println!("{:#?}", value);
99 } else {
100 println!("{:#?}", resp.unwrap_err());
101 }
102}
More examples
examples/v2_workflow-automation_UpdateWorkflow.rs (lines 52-57)
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 .input_schema(InputSchema::new().parameters(vec![
47 InputSchemaParameters::new(
48 "input".to_string(),
49 InputSchemaParametersType::STRING,
50 ).default_value(Value::from("default"))
51 ]))
52 .output_schema(OutputSchema::new().parameters(vec![
53 OutputSchemaParameters::new(
54 "output".to_string(),
55 OutputSchemaParametersType::ARRAY_OBJECT,
56 ).value(Value::from("outputValue"))
57 ]))
58 .steps(vec![
59 Step::new(
60 "com.datadoghq.dd.monitor.listMonitors".to_string(),
61 "Step1".to_string(),
62 )
63 .connection_label("INTEGRATION_DATADOG".to_string())
64 .outbound_edges(vec![OutboundEdge::new(
65 "main".to_string(),
66 "Step2".to_string(),
67 )])
68 .parameters(vec![Parameter::new(
69 "tags".to_string(),
70 Value::from("service:monitoring"),
71 )]),
72 Step::new("com.datadoghq.core.noop".to_string(), "Step2".to_string()),
73 ])
74 .triggers(vec![
75 Trigger::MonitorTriggerWrapper(Box::new(
76 MonitorTriggerWrapper::new(
77 MonitorTrigger::new().rate_limit(
78 TriggerRateLimit::new()
79 .count(1)
80 .interval("3600s".to_string()),
81 ),
82 )
83 .start_step_names(vec!["Step1".to_string()]),
84 )),
85 Trigger::GithubWebhookTriggerWrapper(Box::new(
86 GithubWebhookTriggerWrapper::new(GithubWebhookTrigger::new())
87 .start_step_names(vec!["Step1".to_string()]),
88 )),
89 ]),
90 )
91 .tags(vec![
92 "team:infra".to_string(),
93 "service:monitoring".to_string(),
94 "foo:bar".to_string(),
95 ]),
96 WorkflowDataType::WORKFLOWS,
97 )
98 .id("22222222-2222-2222-2222-222222222222".to_string()),
99 );
100 let configuration = datadog::Configuration::new();
101 let api = WorkflowAutomationAPI::with_config(configuration);
102 let resp = api.update_workflow(workflow_data_id.clone(), body).await;
103 if let Ok(value) = resp {
104 println!("{:#?}", value);
105 } else {
106 println!("{:#?}", resp.unwrap_err());
107 }
108}
Sourcepub fn steps(self, value: Vec<Step>) -> Self
pub fn steps(self, value: Vec<Step>) -> Self
Examples found in repository?
examples/v2_workflow-automation_CreateWorkflow.rs (lines 52-67)
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 .input_schema(InputSchema::new().parameters(vec![
41 InputSchemaParameters::new(
42 "input".to_string(),
43 InputSchemaParametersType::STRING,
44 ).default_value(Value::from("default"))
45 ]))
46 .output_schema(OutputSchema::new().parameters(vec![
47 OutputSchemaParameters::new(
48 "output".to_string(),
49 OutputSchemaParametersType::ARRAY_OBJECT,
50 ).value(Value::from("outputValue"))
51 ]))
52 .steps(vec![
53 Step::new(
54 "com.datadoghq.dd.monitor.listMonitors".to_string(),
55 "Step1".to_string(),
56 )
57 .connection_label("INTEGRATION_DATADOG".to_string())
58 .outbound_edges(vec![OutboundEdge::new(
59 "main".to_string(),
60 "Step2".to_string(),
61 )])
62 .parameters(vec![Parameter::new(
63 "tags".to_string(),
64 Value::from("service:monitoring"),
65 )]),
66 Step::new("com.datadoghq.core.noop".to_string(), "Step2".to_string()),
67 ])
68 .triggers(vec![
69 Trigger::MonitorTriggerWrapper(Box::new(
70 MonitorTriggerWrapper::new(
71 MonitorTrigger::new().rate_limit(
72 TriggerRateLimit::new()
73 .count(1)
74 .interval("3600s".to_string()),
75 ),
76 )
77 .start_step_names(vec!["Step1".to_string()]),
78 )),
79 Trigger::GithubWebhookTriggerWrapper(Box::new(
80 GithubWebhookTriggerWrapper::new(GithubWebhookTrigger::new())
81 .start_step_names(vec!["Step1".to_string()]),
82 )),
83 ]),
84 )
85 .description("A sample workflow.".to_string())
86 .published(true)
87 .tags(vec![
88 "team:infra".to_string(),
89 "service:monitoring".to_string(),
90 "foo:bar".to_string(),
91 ]),
92 WorkflowDataType::WORKFLOWS,
93 ));
94 let configuration = datadog::Configuration::new();
95 let api = WorkflowAutomationAPI::with_config(configuration);
96 let resp = api.create_workflow(body).await;
97 if let Ok(value) = resp {
98 println!("{:#?}", value);
99 } else {
100 println!("{:#?}", resp.unwrap_err());
101 }
102}
More examples
examples/v2_workflow-automation_UpdateWorkflow.rs (lines 58-73)
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 .input_schema(InputSchema::new().parameters(vec![
47 InputSchemaParameters::new(
48 "input".to_string(),
49 InputSchemaParametersType::STRING,
50 ).default_value(Value::from("default"))
51 ]))
52 .output_schema(OutputSchema::new().parameters(vec![
53 OutputSchemaParameters::new(
54 "output".to_string(),
55 OutputSchemaParametersType::ARRAY_OBJECT,
56 ).value(Value::from("outputValue"))
57 ]))
58 .steps(vec![
59 Step::new(
60 "com.datadoghq.dd.monitor.listMonitors".to_string(),
61 "Step1".to_string(),
62 )
63 .connection_label("INTEGRATION_DATADOG".to_string())
64 .outbound_edges(vec![OutboundEdge::new(
65 "main".to_string(),
66 "Step2".to_string(),
67 )])
68 .parameters(vec![Parameter::new(
69 "tags".to_string(),
70 Value::from("service:monitoring"),
71 )]),
72 Step::new("com.datadoghq.core.noop".to_string(), "Step2".to_string()),
73 ])
74 .triggers(vec![
75 Trigger::MonitorTriggerWrapper(Box::new(
76 MonitorTriggerWrapper::new(
77 MonitorTrigger::new().rate_limit(
78 TriggerRateLimit::new()
79 .count(1)
80 .interval("3600s".to_string()),
81 ),
82 )
83 .start_step_names(vec!["Step1".to_string()]),
84 )),
85 Trigger::GithubWebhookTriggerWrapper(Box::new(
86 GithubWebhookTriggerWrapper::new(GithubWebhookTrigger::new())
87 .start_step_names(vec!["Step1".to_string()]),
88 )),
89 ]),
90 )
91 .tags(vec![
92 "team:infra".to_string(),
93 "service:monitoring".to_string(),
94 "foo:bar".to_string(),
95 ]),
96 WorkflowDataType::WORKFLOWS,
97 )
98 .id("22222222-2222-2222-2222-222222222222".to_string()),
99 );
100 let configuration = datadog::Configuration::new();
101 let api = WorkflowAutomationAPI::with_config(configuration);
102 let resp = api.update_workflow(workflow_data_id.clone(), body).await;
103 if let Ok(value) = resp {
104 println!("{:#?}", value);
105 } else {
106 println!("{:#?}", resp.unwrap_err());
107 }
108}
Sourcepub fn triggers(self, value: Vec<Trigger>) -> Self
pub fn triggers(self, value: Vec<Trigger>) -> Self
Examples found in repository?
examples/v2_workflow-automation_CreateWorkflow.rs (lines 68-83)
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 .input_schema(InputSchema::new().parameters(vec![
41 InputSchemaParameters::new(
42 "input".to_string(),
43 InputSchemaParametersType::STRING,
44 ).default_value(Value::from("default"))
45 ]))
46 .output_schema(OutputSchema::new().parameters(vec![
47 OutputSchemaParameters::new(
48 "output".to_string(),
49 OutputSchemaParametersType::ARRAY_OBJECT,
50 ).value(Value::from("outputValue"))
51 ]))
52 .steps(vec![
53 Step::new(
54 "com.datadoghq.dd.monitor.listMonitors".to_string(),
55 "Step1".to_string(),
56 )
57 .connection_label("INTEGRATION_DATADOG".to_string())
58 .outbound_edges(vec![OutboundEdge::new(
59 "main".to_string(),
60 "Step2".to_string(),
61 )])
62 .parameters(vec![Parameter::new(
63 "tags".to_string(),
64 Value::from("service:monitoring"),
65 )]),
66 Step::new("com.datadoghq.core.noop".to_string(), "Step2".to_string()),
67 ])
68 .triggers(vec![
69 Trigger::MonitorTriggerWrapper(Box::new(
70 MonitorTriggerWrapper::new(
71 MonitorTrigger::new().rate_limit(
72 TriggerRateLimit::new()
73 .count(1)
74 .interval("3600s".to_string()),
75 ),
76 )
77 .start_step_names(vec!["Step1".to_string()]),
78 )),
79 Trigger::GithubWebhookTriggerWrapper(Box::new(
80 GithubWebhookTriggerWrapper::new(GithubWebhookTrigger::new())
81 .start_step_names(vec!["Step1".to_string()]),
82 )),
83 ]),
84 )
85 .description("A sample workflow.".to_string())
86 .published(true)
87 .tags(vec![
88 "team:infra".to_string(),
89 "service:monitoring".to_string(),
90 "foo:bar".to_string(),
91 ]),
92 WorkflowDataType::WORKFLOWS,
93 ));
94 let configuration = datadog::Configuration::new();
95 let api = WorkflowAutomationAPI::with_config(configuration);
96 let resp = api.create_workflow(body).await;
97 if let Ok(value) = resp {
98 println!("{:#?}", value);
99 } else {
100 println!("{:#?}", resp.unwrap_err());
101 }
102}
More examples
examples/v2_workflow-automation_UpdateWorkflow.rs (lines 74-89)
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 .input_schema(InputSchema::new().parameters(vec![
47 InputSchemaParameters::new(
48 "input".to_string(),
49 InputSchemaParametersType::STRING,
50 ).default_value(Value::from("default"))
51 ]))
52 .output_schema(OutputSchema::new().parameters(vec![
53 OutputSchemaParameters::new(
54 "output".to_string(),
55 OutputSchemaParametersType::ARRAY_OBJECT,
56 ).value(Value::from("outputValue"))
57 ]))
58 .steps(vec![
59 Step::new(
60 "com.datadoghq.dd.monitor.listMonitors".to_string(),
61 "Step1".to_string(),
62 )
63 .connection_label("INTEGRATION_DATADOG".to_string())
64 .outbound_edges(vec![OutboundEdge::new(
65 "main".to_string(),
66 "Step2".to_string(),
67 )])
68 .parameters(vec![Parameter::new(
69 "tags".to_string(),
70 Value::from("service:monitoring"),
71 )]),
72 Step::new("com.datadoghq.core.noop".to_string(), "Step2".to_string()),
73 ])
74 .triggers(vec![
75 Trigger::MonitorTriggerWrapper(Box::new(
76 MonitorTriggerWrapper::new(
77 MonitorTrigger::new().rate_limit(
78 TriggerRateLimit::new()
79 .count(1)
80 .interval("3600s".to_string()),
81 ),
82 )
83 .start_step_names(vec!["Step1".to_string()]),
84 )),
85 Trigger::GithubWebhookTriggerWrapper(Box::new(
86 GithubWebhookTriggerWrapper::new(GithubWebhookTrigger::new())
87 .start_step_names(vec!["Step1".to_string()]),
88 )),
89 ]),
90 )
91 .tags(vec![
92 "team:infra".to_string(),
93 "service:monitoring".to_string(),
94 "foo:bar".to_string(),
95 ]),
96 WorkflowDataType::WORKFLOWS,
97 )
98 .id("22222222-2222-2222-2222-222222222222".to_string()),
99 );
100 let configuration = datadog::Configuration::new();
101 let api = WorkflowAutomationAPI::with_config(configuration);
102 let resp = api.update_workflow(workflow_data_id.clone(), body).await;
103 if let Ok(value) = resp {
104 println!("{:#?}", value);
105 } else {
106 println!("{:#?}", resp.unwrap_err());
107 }
108}
pub fn additional_properties(self, value: BTreeMap<String, Value>) -> Self
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Spec
impl<'de> Deserialize<'de> for Spec
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
impl StructuralPartialEq for Spec
Auto Trait Implementations§
impl Freeze for Spec
impl RefUnwindSafe for Spec
impl Send for Spec
impl Sync for Spec
impl Unpin for Spec
impl UnwindSafe for Spec
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