v2_logs_custom_destinations_CreateLogsCustomDestination/
v2_logs-custom-destinations_CreateLogsCustomDestination.rs1use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_logs_custom_destinations::LogsCustomDestinationsAPI;
4use datadog_api_client::datadogV2::model::CustomDestinationAttributeTagsRestrictionListType;
5use datadog_api_client::datadogV2::model::CustomDestinationCreateRequest;
6use datadog_api_client::datadogV2::model::CustomDestinationCreateRequestAttributes;
7use datadog_api_client::datadogV2::model::CustomDestinationCreateRequestDefinition;
8use datadog_api_client::datadogV2::model::CustomDestinationForwardDestination;
9use datadog_api_client::datadogV2::model::CustomDestinationForwardDestinationHttp;
10use datadog_api_client::datadogV2::model::CustomDestinationForwardDestinationHttpType;
11use datadog_api_client::datadogV2::model::CustomDestinationHttpDestinationAuth;
12use datadog_api_client::datadogV2::model::CustomDestinationHttpDestinationAuthBasic;
13use datadog_api_client::datadogV2::model::CustomDestinationHttpDestinationAuthBasicType;
14use datadog_api_client::datadogV2::model::CustomDestinationType;
15
16#[tokio::main]
17async fn main() {
18 let body = CustomDestinationCreateRequest::new()
19 .data(CustomDestinationCreateRequestDefinition::new(
20 CustomDestinationCreateRequestAttributes::new(
21 CustomDestinationForwardDestination::CustomDestinationForwardDestinationHttp(Box::new(
22 CustomDestinationForwardDestinationHttp::new(
23 CustomDestinationHttpDestinationAuth::CustomDestinationHttpDestinationAuthBasic(
24 Box::new(CustomDestinationHttpDestinationAuthBasic::new(
25 "datadog-custom-destination-password".to_string(),
26 CustomDestinationHttpDestinationAuthBasicType::BASIC,
27 "datadog-custom-destination-username".to_string(),
28 )),
29 ),
30 "https://example.com".to_string(),
31 CustomDestinationForwardDestinationHttpType::HTTP,
32 ),
33 )),
34 "Nginx logs".to_string(),
35 )
36 .enabled(true)
37 .forward_tags(true)
38 .forward_tags_restriction_list(vec!["datacenter".to_string(), "host".to_string()])
39 .forward_tags_restriction_list_type(
40 CustomDestinationAttributeTagsRestrictionListType::ALLOW_LIST,
41 )
42 .query("source:nginx".to_string()),
43 CustomDestinationType::CUSTOM_DESTINATION,
44 ));
45 let configuration = datadog::Configuration::new();
46 let api = LogsCustomDestinationsAPI::with_config(configuration);
47 let resp = api.create_logs_custom_destination(body).await;
48 if let Ok(value) = resp {
49 println!("{:#?}", value);
50 } else {
51 println!("{:#?}", resp.unwrap_err());
52 }
53}