pub struct WorkflowAutomationAPI { /* private fields */ }
Expand description
Datadog Workflow Automation allows you to automate your end-to-end processes by connecting Datadog with the rest of your tech stack. Build workflows to auto-remediate your alerts, streamline your incident and security processes, and reduce manual toil. Workflow Automation supports over 1,000+ OOTB actions, including AWS, JIRA, ServiceNow, GitHub, and OpenAI. Learn more in our Workflow Automation docs here.
Implementations§
Source§impl WorkflowAutomationAPI
impl WorkflowAutomationAPI
pub fn new() -> Self
Sourcepub fn with_config(config: Configuration) -> Self
pub fn with_config(config: Configuration) -> Self
Examples found in repository?
6async fn main() {
7 // there is a valid "workflow" in the system
8 let workflow_data_id = std::env::var("WORKFLOW_DATA_ID").unwrap();
9 let configuration = datadog::Configuration::new();
10 let api = WorkflowAutomationAPI::with_config(configuration);
11 let resp = api.get_workflow(workflow_data_id.clone()).await;
12 if let Ok(value) = resp {
13 println!("{:#?}", value);
14 } else {
15 println!("{:#?}", resp.unwrap_err());
16 }
17}
More examples
6async fn main() {
7 // there is a valid "workflow" in the system
8 let workflow_data_id = std::env::var("WORKFLOW_DATA_ID").unwrap();
9 let configuration = datadog::Configuration::new();
10 let api = WorkflowAutomationAPI::with_config(configuration);
11 let resp = api.delete_workflow(workflow_data_id.clone()).await;
12 if let Ok(value) = resp {
13 println!("{:#?}", value);
14 } else {
15 println!("{:#?}", resp.unwrap_err());
16 }
17}
7async fn main() {
8 let configuration = datadog::Configuration::new();
9 let api = WorkflowAutomationAPI::with_config(configuration);
10 let resp = api
11 .list_workflow_instances(
12 "ccf73164-1998-4785-a7a3-8d06c7e5f558".to_string(),
13 ListWorkflowInstancesOptionalParams::default(),
14 )
15 .await;
16 if let Ok(value) = resp {
17 println!("{:#?}", value);
18 } else {
19 println!("{:#?}", resp.unwrap_err());
20 }
21}
6async fn main() {
7 let configuration = datadog::Configuration::new();
8 let api = WorkflowAutomationAPI::with_config(configuration);
9 let resp = api
10 .get_workflow_instance(
11 "ccf73164-1998-4785-a7a3-8d06c7e5f558".to_string(),
12 "305a472b-71ab-4ce8-8f8d-75db635627b5".to_string(),
13 )
14 .await;
15 if let Ok(value) = resp {
16 println!("{:#?}", value);
17 } else {
18 println!("{:#?}", resp.unwrap_err());
19 }
20}
6async fn main() {
7 let configuration = datadog::Configuration::new();
8 let api = WorkflowAutomationAPI::with_config(configuration);
9 let resp = api
10 .cancel_workflow_instance(
11 "ccf73164-1998-4785-a7a3-8d06c7e5f558".to_string(),
12 "305a472b-71ab-4ce8-8f8d-75db635627b5".to_string(),
13 )
14 .await;
15 if let Ok(value) = resp {
16 println!("{:#?}", value);
17 } else {
18 println!("{:#?}", resp.unwrap_err());
19 }
20}
10async fn main() {
11 let body =
12 WorkflowInstanceCreateRequest::new().meta(WorkflowInstanceCreateMeta::new().payload(
13 BTreeMap::from([("input".to_string(), Value::from("value"))]),
14 ));
15 let configuration = datadog::Configuration::new();
16 let api = WorkflowAutomationAPI::with_config(configuration);
17 let resp = api
18 .create_workflow_instance("ccf73164-1998-4785-a7a3-8d06c7e5f558".to_string(), body)
19 .await;
20 if let Ok(value) = resp {
21 println!("{:#?}", value);
22 } else {
23 println!("{:#?}", resp.unwrap_err());
24 }
25}
pub fn with_client_and_config( config: Configuration, client: ClientWithMiddleware, ) -> Self
Sourcepub async fn cancel_workflow_instance(
&self,
workflow_id: String,
instance_id: String,
) -> Result<WorklflowCancelInstanceResponse, Error<CancelWorkflowInstanceError>>
pub async fn cancel_workflow_instance( &self, workflow_id: String, instance_id: String, ) -> Result<WorklflowCancelInstanceResponse, Error<CancelWorkflowInstanceError>>
Cancels a specific execution of a given workflow. This API requires an application key scoped with the workflows_run permission.
Examples found in repository?
6async fn main() {
7 let configuration = datadog::Configuration::new();
8 let api = WorkflowAutomationAPI::with_config(configuration);
9 let resp = api
10 .cancel_workflow_instance(
11 "ccf73164-1998-4785-a7a3-8d06c7e5f558".to_string(),
12 "305a472b-71ab-4ce8-8f8d-75db635627b5".to_string(),
13 )
14 .await;
15 if let Ok(value) = resp {
16 println!("{:#?}", value);
17 } else {
18 println!("{:#?}", resp.unwrap_err());
19 }
20}
Sourcepub async fn cancel_workflow_instance_with_http_info(
&self,
workflow_id: String,
instance_id: String,
) -> Result<ResponseContent<WorklflowCancelInstanceResponse>, Error<CancelWorkflowInstanceError>>
pub async fn cancel_workflow_instance_with_http_info( &self, workflow_id: String, instance_id: String, ) -> Result<ResponseContent<WorklflowCancelInstanceResponse>, Error<CancelWorkflowInstanceError>>
Cancels a specific execution of a given workflow. This API requires an application key scoped with the workflows_run permission.
Sourcepub async fn create_workflow(
&self,
body: CreateWorkflowRequest,
) -> Result<CreateWorkflowResponse, Error<CreateWorkflowError>>
pub async fn create_workflow( &self, body: CreateWorkflowRequest, ) -> Result<CreateWorkflowResponse, Error<CreateWorkflowError>>
Create a new workflow, returning the workflow ID. This API requires an application key scoped with the workflows_write
permission.
Examples found in repository?
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}
Sourcepub async fn create_workflow_with_http_info(
&self,
body: CreateWorkflowRequest,
) -> Result<ResponseContent<CreateWorkflowResponse>, Error<CreateWorkflowError>>
pub async fn create_workflow_with_http_info( &self, body: CreateWorkflowRequest, ) -> Result<ResponseContent<CreateWorkflowResponse>, Error<CreateWorkflowError>>
Create a new workflow, returning the workflow ID. This API requires an application key scoped with the workflows_write
permission.
Sourcepub async fn create_workflow_instance(
&self,
workflow_id: String,
body: WorkflowInstanceCreateRequest,
) -> Result<WorkflowInstanceCreateResponse, Error<CreateWorkflowInstanceError>>
pub async fn create_workflow_instance( &self, workflow_id: String, body: WorkflowInstanceCreateRequest, ) -> Result<WorkflowInstanceCreateResponse, Error<CreateWorkflowInstanceError>>
Execute the given workflow. This API requires an application key scoped with the workflows_run permission.
Examples found in repository?
10async fn main() {
11 let body =
12 WorkflowInstanceCreateRequest::new().meta(WorkflowInstanceCreateMeta::new().payload(
13 BTreeMap::from([("input".to_string(), Value::from("value"))]),
14 ));
15 let configuration = datadog::Configuration::new();
16 let api = WorkflowAutomationAPI::with_config(configuration);
17 let resp = api
18 .create_workflow_instance("ccf73164-1998-4785-a7a3-8d06c7e5f558".to_string(), body)
19 .await;
20 if let Ok(value) = resp {
21 println!("{:#?}", value);
22 } else {
23 println!("{:#?}", resp.unwrap_err());
24 }
25}
Sourcepub async fn create_workflow_instance_with_http_info(
&self,
workflow_id: String,
body: WorkflowInstanceCreateRequest,
) -> Result<ResponseContent<WorkflowInstanceCreateResponse>, Error<CreateWorkflowInstanceError>>
pub async fn create_workflow_instance_with_http_info( &self, workflow_id: String, body: WorkflowInstanceCreateRequest, ) -> Result<ResponseContent<WorkflowInstanceCreateResponse>, Error<CreateWorkflowInstanceError>>
Execute the given workflow. This API requires an application key scoped with the workflows_run permission.
Sourcepub async fn delete_workflow(
&self,
workflow_id: String,
) -> Result<(), Error<DeleteWorkflowError>>
pub async fn delete_workflow( &self, workflow_id: String, ) -> Result<(), Error<DeleteWorkflowError>>
Delete a workflow by ID. This API requires an application key scoped with the workflows_write
permission.
Examples found in repository?
6async fn main() {
7 // there is a valid "workflow" in the system
8 let workflow_data_id = std::env::var("WORKFLOW_DATA_ID").unwrap();
9 let configuration = datadog::Configuration::new();
10 let api = WorkflowAutomationAPI::with_config(configuration);
11 let resp = api.delete_workflow(workflow_data_id.clone()).await;
12 if let Ok(value) = resp {
13 println!("{:#?}", value);
14 } else {
15 println!("{:#?}", resp.unwrap_err());
16 }
17}
Sourcepub async fn delete_workflow_with_http_info(
&self,
workflow_id: String,
) -> Result<ResponseContent<()>, Error<DeleteWorkflowError>>
pub async fn delete_workflow_with_http_info( &self, workflow_id: String, ) -> Result<ResponseContent<()>, Error<DeleteWorkflowError>>
Delete a workflow by ID. This API requires an application key scoped with the workflows_write
permission.
Sourcepub async fn get_workflow(
&self,
workflow_id: String,
) -> Result<GetWorkflowResponse, Error<GetWorkflowError>>
pub async fn get_workflow( &self, workflow_id: String, ) -> Result<GetWorkflowResponse, Error<GetWorkflowError>>
Get a workflow by ID. This API requires an application key scoped with the workflows_read
permission.
Examples found in repository?
6async fn main() {
7 // there is a valid "workflow" in the system
8 let workflow_data_id = std::env::var("WORKFLOW_DATA_ID").unwrap();
9 let configuration = datadog::Configuration::new();
10 let api = WorkflowAutomationAPI::with_config(configuration);
11 let resp = api.get_workflow(workflow_data_id.clone()).await;
12 if let Ok(value) = resp {
13 println!("{:#?}", value);
14 } else {
15 println!("{:#?}", resp.unwrap_err());
16 }
17}
Sourcepub async fn get_workflow_with_http_info(
&self,
workflow_id: String,
) -> Result<ResponseContent<GetWorkflowResponse>, Error<GetWorkflowError>>
pub async fn get_workflow_with_http_info( &self, workflow_id: String, ) -> Result<ResponseContent<GetWorkflowResponse>, Error<GetWorkflowError>>
Get a workflow by ID. This API requires an application key scoped with the workflows_read
permission.
Sourcepub async fn get_workflow_instance(
&self,
workflow_id: String,
instance_id: String,
) -> Result<WorklflowGetInstanceResponse, Error<GetWorkflowInstanceError>>
pub async fn get_workflow_instance( &self, workflow_id: String, instance_id: String, ) -> Result<WorklflowGetInstanceResponse, Error<GetWorkflowInstanceError>>
Get a specific execution of a given workflow. This API requires an application key scoped with the workflows_read permission.
Examples found in repository?
6async fn main() {
7 let configuration = datadog::Configuration::new();
8 let api = WorkflowAutomationAPI::with_config(configuration);
9 let resp = api
10 .get_workflow_instance(
11 "ccf73164-1998-4785-a7a3-8d06c7e5f558".to_string(),
12 "305a472b-71ab-4ce8-8f8d-75db635627b5".to_string(),
13 )
14 .await;
15 if let Ok(value) = resp {
16 println!("{:#?}", value);
17 } else {
18 println!("{:#?}", resp.unwrap_err());
19 }
20}
Sourcepub async fn get_workflow_instance_with_http_info(
&self,
workflow_id: String,
instance_id: String,
) -> Result<ResponseContent<WorklflowGetInstanceResponse>, Error<GetWorkflowInstanceError>>
pub async fn get_workflow_instance_with_http_info( &self, workflow_id: String, instance_id: String, ) -> Result<ResponseContent<WorklflowGetInstanceResponse>, Error<GetWorkflowInstanceError>>
Get a specific execution of a given workflow. This API requires an application key scoped with the workflows_read permission.
Sourcepub async fn list_workflow_instances(
&self,
workflow_id: String,
params: ListWorkflowInstancesOptionalParams,
) -> Result<WorkflowListInstancesResponse, Error<ListWorkflowInstancesError>>
pub async fn list_workflow_instances( &self, workflow_id: String, params: ListWorkflowInstancesOptionalParams, ) -> Result<WorkflowListInstancesResponse, Error<ListWorkflowInstancesError>>
List all instances of a given workflow. This API requires an application key scoped with the workflows_read permission.
Examples found in repository?
7async fn main() {
8 let configuration = datadog::Configuration::new();
9 let api = WorkflowAutomationAPI::with_config(configuration);
10 let resp = api
11 .list_workflow_instances(
12 "ccf73164-1998-4785-a7a3-8d06c7e5f558".to_string(),
13 ListWorkflowInstancesOptionalParams::default(),
14 )
15 .await;
16 if let Ok(value) = resp {
17 println!("{:#?}", value);
18 } else {
19 println!("{:#?}", resp.unwrap_err());
20 }
21}
Sourcepub async fn list_workflow_instances_with_http_info(
&self,
workflow_id: String,
params: ListWorkflowInstancesOptionalParams,
) -> Result<ResponseContent<WorkflowListInstancesResponse>, Error<ListWorkflowInstancesError>>
pub async fn list_workflow_instances_with_http_info( &self, workflow_id: String, params: ListWorkflowInstancesOptionalParams, ) -> Result<ResponseContent<WorkflowListInstancesResponse>, Error<ListWorkflowInstancesError>>
List all instances of a given workflow. This API requires an application key scoped with the workflows_read permission.
Sourcepub async fn update_workflow(
&self,
workflow_id: String,
body: UpdateWorkflowRequest,
) -> Result<UpdateWorkflowResponse, Error<UpdateWorkflowError>>
pub async fn update_workflow( &self, workflow_id: String, body: UpdateWorkflowRequest, ) -> Result<UpdateWorkflowResponse, Error<UpdateWorkflowError>>
Update a workflow by ID. This API requires an application key scoped with the workflows_write
permission.
Examples found in repository?
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 async fn update_workflow_with_http_info(
&self,
workflow_id: String,
body: UpdateWorkflowRequest,
) -> Result<ResponseContent<UpdateWorkflowResponse>, Error<UpdateWorkflowError>>
pub async fn update_workflow_with_http_info( &self, workflow_id: String, body: UpdateWorkflowRequest, ) -> Result<ResponseContent<UpdateWorkflowResponse>, Error<UpdateWorkflowError>>
Update a workflow by ID. This API requires an application key scoped with the workflows_write
permission.
Trait Implementations§
Source§impl Clone for WorkflowAutomationAPI
impl Clone for WorkflowAutomationAPI
Source§fn clone(&self) -> WorkflowAutomationAPI
fn clone(&self) -> WorkflowAutomationAPI
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more