v2_observability_pipelines_CreatePipeline/
v2_observability-pipelines_CreatePipeline.rs1use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_observability_pipelines::ObservabilityPipelinesAPI;
4use datadog_api_client::datadogV2::model::ObservabilityPipelineConfig;
5use datadog_api_client::datadogV2::model::ObservabilityPipelineConfigDestinationItem;
6use datadog_api_client::datadogV2::model::ObservabilityPipelineConfigProcessorItem;
7use datadog_api_client::datadogV2::model::ObservabilityPipelineConfigSourceItem;
8use datadog_api_client::datadogV2::model::ObservabilityPipelineDataAttributes;
9use datadog_api_client::datadogV2::model::ObservabilityPipelineDatadogAgentSource;
10use datadog_api_client::datadogV2::model::ObservabilityPipelineDatadogAgentSourceType;
11use datadog_api_client::datadogV2::model::ObservabilityPipelineDatadogLogsDestination;
12use datadog_api_client::datadogV2::model::ObservabilityPipelineDatadogLogsDestinationType;
13use datadog_api_client::datadogV2::model::ObservabilityPipelineFilterProcessor;
14use datadog_api_client::datadogV2::model::ObservabilityPipelineFilterProcessorType;
15use datadog_api_client::datadogV2::model::ObservabilityPipelineSpec;
16use datadog_api_client::datadogV2::model::ObservabilityPipelineSpecData;
17
18#[tokio::main]
19async fn main() {
20 let body =
21 ObservabilityPipelineSpec::new(
22 ObservabilityPipelineSpecData::new(
23 ObservabilityPipelineDataAttributes::new(
24 ObservabilityPipelineConfig::new(
25 vec![
26 ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineDatadogLogsDestination(
27 Box::new(
28 ObservabilityPipelineDatadogLogsDestination::new(
29 "datadog-logs-destination".to_string(),
30 vec!["filter-processor".to_string()],
31 ObservabilityPipelineDatadogLogsDestinationType::DATADOG_LOGS,
32 ),
33 ),
34 )
35 ],
36 vec![
37 ObservabilityPipelineConfigSourceItem::ObservabilityPipelineDatadogAgentSource(
38 Box::new(
39 ObservabilityPipelineDatadogAgentSource::new(
40 "datadog-agent-source".to_string(),
41 ObservabilityPipelineDatadogAgentSourceType::DATADOG_AGENT,
42 ),
43 ),
44 )
45 ],
46 ).processors(
47 vec![
48 ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineFilterProcessor(
49 Box::new(
50 ObservabilityPipelineFilterProcessor::new(
51 "filter-processor".to_string(),
52 "service:my-service".to_string(),
53 vec!["datadog-agent-source".to_string()],
54 ObservabilityPipelineFilterProcessorType::FILTER,
55 ),
56 ),
57 )
58 ],
59 ),
60 "Main Observability Pipeline".to_string(),
61 ),
62 "pipelines".to_string(),
63 ),
64 );
65 let mut configuration = datadog::Configuration::new();
66 configuration.set_unstable_operation_enabled("v2.CreatePipeline", true);
67 let api = ObservabilityPipelinesAPI::with_config(configuration);
68 let resp = api.create_pipeline(body).await;
69 if let Ok(value) = resp {
70 println!("{:#?}", value);
71 } else {
72 println!("{:#?}", resp.unwrap_err());
73 }
74}