v2_observability_pipelines_UpdatePipeline/
v2_observability-pipelines_UpdatePipeline.rs

1// Update a pipeline returns "OK" response
2use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_observability_pipelines::ObservabilityPipelinesAPI;
4use datadog_api_client::datadogV2::model::ObservabilityPipeline;
5use datadog_api_client::datadogV2::model::ObservabilityPipelineConfig;
6use datadog_api_client::datadogV2::model::ObservabilityPipelineConfigDestinationItem;
7use datadog_api_client::datadogV2::model::ObservabilityPipelineConfigProcessorItem;
8use datadog_api_client::datadogV2::model::ObservabilityPipelineConfigSourceItem;
9use datadog_api_client::datadogV2::model::ObservabilityPipelineData;
10use datadog_api_client::datadogV2::model::ObservabilityPipelineDataAttributes;
11use datadog_api_client::datadogV2::model::ObservabilityPipelineDatadogAgentSource;
12use datadog_api_client::datadogV2::model::ObservabilityPipelineDatadogAgentSourceType;
13use datadog_api_client::datadogV2::model::ObservabilityPipelineDatadogLogsDestination;
14use datadog_api_client::datadogV2::model::ObservabilityPipelineDatadogLogsDestinationType;
15use datadog_api_client::datadogV2::model::ObservabilityPipelineFilterProcessor;
16use datadog_api_client::datadogV2::model::ObservabilityPipelineFilterProcessorType;
17
18#[tokio::main]
19async fn main() {
20    // there is a valid "pipeline" in the system
21    let pipeline_data_id = std::env::var("PIPELINE_DATA_ID").unwrap();
22    let body =
23        ObservabilityPipeline::new(
24            ObservabilityPipelineData::new(
25                ObservabilityPipelineDataAttributes::new(
26                    ObservabilityPipelineConfig::new(
27                        vec![
28                            ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineDatadogLogsDestination(
29                                Box::new(
30                                    ObservabilityPipelineDatadogLogsDestination::new(
31                                        "updated-datadog-logs-destination-id".to_string(),
32                                        vec!["filter-processor".to_string()],
33                                        ObservabilityPipelineDatadogLogsDestinationType::DATADOG_LOGS,
34                                    ),
35                                ),
36                            )
37                        ],
38                        vec![
39                            ObservabilityPipelineConfigSourceItem::ObservabilityPipelineDatadogAgentSource(
40                                Box::new(
41                                    ObservabilityPipelineDatadogAgentSource::new(
42                                        "datadog-agent-source".to_string(),
43                                        ObservabilityPipelineDatadogAgentSourceType::DATADOG_AGENT,
44                                    ),
45                                ),
46                            )
47                        ],
48                    ).processors(
49                        vec![
50                            ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineFilterProcessor(
51                                Box::new(
52                                    ObservabilityPipelineFilterProcessor::new(
53                                        "filter-processor".to_string(),
54                                        "service:my-service".to_string(),
55                                        vec!["datadog-agent-source".to_string()],
56                                        ObservabilityPipelineFilterProcessorType::FILTER,
57                                    ),
58                                ),
59                            )
60                        ],
61                    ),
62                    "Updated Pipeline Name".to_string(),
63                ),
64                pipeline_data_id.clone(),
65                "pipelines".to_string(),
66            ),
67        );
68    let mut configuration = datadog::Configuration::new();
69    configuration.set_unstable_operation_enabled("v2.UpdatePipeline", true);
70    let api = ObservabilityPipelinesAPI::with_config(configuration);
71    let resp = api.update_pipeline(pipeline_data_id.clone(), body).await;
72    if let Ok(value) = resp {
73        println!("{:#?}", value);
74    } else {
75        println!("{:#?}", resp.unwrap_err());
76    }
77}