Struct WorkflowAutomationAPI

Source
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

Source

pub fn new() -> Self

Source

pub fn with_config(config: Configuration) -> Self

Examples found in repository?
examples/v2_workflow-automation_GetWorkflow.rs (line 10)
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
Hide additional examples
examples/v2_workflow-automation_DeleteWorkflow.rs (line 10)
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}
examples/v2_workflow-automation_ListWorkflowInstances.rs (line 9)
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}
examples/v2_workflow-automation_GetWorkflowInstance.rs (line 8)
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}
examples/v2_workflow-automation_CancelWorkflowInstance.rs (line 8)
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}
examples/v2_workflow-automation_CreateWorkflowInstance.rs (line 16)
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}
Source

pub fn with_client_and_config( config: Configuration, client: ClientWithMiddleware, ) -> Self

Source

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 a registered application key.

Examples found in repository?
examples/v2_workflow-automation_CancelWorkflowInstance.rs (lines 10-13)
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}
Source

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 a registered application key.

Source

pub async fn create_workflow( &self, body: CreateWorkflowRequest, ) -> Result<CreateWorkflowResponse, Error<CreateWorkflowError>>

Create a new workflow, returning the workflow ID. This API requires a registered application key.

Examples found in repository?
examples/v2_workflow-automation_CreateWorkflow.rs (line 96)
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}
Source

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 a registered application key.

Source

pub async fn create_workflow_instance( &self, workflow_id: String, body: WorkflowInstanceCreateRequest, ) -> Result<WorkflowInstanceCreateResponse, Error<CreateWorkflowInstanceError>>

Execute the given workflow. This API requires a registered application key.

Examples found in repository?
examples/v2_workflow-automation_CreateWorkflowInstance.rs (line 18)
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}
Source

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 a registered application key.

Source

pub async fn delete_workflow( &self, workflow_id: String, ) -> Result<(), Error<DeleteWorkflowError>>

Delete a workflow by ID. This API requires a registered application key.

Examples found in repository?
examples/v2_workflow-automation_DeleteWorkflow.rs (line 11)
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}
Source

pub async fn delete_workflow_with_http_info( &self, workflow_id: String, ) -> Result<ResponseContent<()>, Error<DeleteWorkflowError>>

Delete a workflow by ID. This API requires a registered application key.

Source

pub async fn get_workflow( &self, workflow_id: String, ) -> Result<GetWorkflowResponse, Error<GetWorkflowError>>

Get a workflow by ID. This API requires a registered application key.

Examples found in repository?
examples/v2_workflow-automation_GetWorkflow.rs (line 11)
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}
Source

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 a registered application key.

Source

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 a registered application key.

Examples found in repository?
examples/v2_workflow-automation_GetWorkflowInstance.rs (lines 10-13)
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}
Source

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 a registered application key.

Source

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 a registered application key.

Examples found in repository?
examples/v2_workflow-automation_ListWorkflowInstances.rs (lines 11-14)
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}
Source

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 a registered application key.

Source

pub async fn update_workflow( &self, workflow_id: String, body: UpdateWorkflowRequest, ) -> Result<UpdateWorkflowResponse, Error<UpdateWorkflowError>>

Update a workflow by ID. This API requires a registered application key.

Examples found in repository?
examples/v2_workflow-automation_UpdateWorkflow.rs (line 102)
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}
Source

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 a registered application key.

Trait Implementations§

Source§

impl Clone for WorkflowAutomationAPI

Source§

fn clone(&self) -> WorkflowAutomationAPI

Returns a duplicate of the value. Read more
1.0.0 · Source§

const fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for WorkflowAutomationAPI

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for WorkflowAutomationAPI

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,