v2_observability_pipelines_UpdatePipeline/
v2_observability-pipelines_UpdatePipeline.rs1use 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 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}