v2_software_catalog_UpsertCatalogEntity/
v2_software-catalog_UpsertCatalogEntity.rs1use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_software_catalog::SoftwareCatalogAPI;
4use datadog_api_client::datadogV2::model::EntityV3;
5use datadog_api_client::datadogV2::model::EntityV3APIVersion;
6use datadog_api_client::datadogV2::model::EntityV3DatadogCodeLocationItem;
7use datadog_api_client::datadogV2::model::EntityV3DatadogEventItem;
8use datadog_api_client::datadogV2::model::EntityV3DatadogIntegrationOpsgenie;
9use datadog_api_client::datadogV2::model::EntityV3DatadogIntegrationPagerduty;
10use datadog_api_client::datadogV2::model::EntityV3DatadogLogItem;
11use datadog_api_client::datadogV2::model::EntityV3DatadogPerformance;
12use datadog_api_client::datadogV2::model::EntityV3DatadogPipelines;
13use datadog_api_client::datadogV2::model::EntityV3Integrations;
14use datadog_api_client::datadogV2::model::EntityV3Metadata;
15use datadog_api_client::datadogV2::model::EntityV3MetadataAdditionalOwnersItems;
16use datadog_api_client::datadogV2::model::EntityV3MetadataContactsItems;
17use datadog_api_client::datadogV2::model::EntityV3MetadataLinksItems;
18use datadog_api_client::datadogV2::model::EntityV3Service;
19use datadog_api_client::datadogV2::model::EntityV3ServiceDatadog;
20use datadog_api_client::datadogV2::model::EntityV3ServiceKind;
21use datadog_api_client::datadogV2::model::EntityV3ServiceSpec;
22use datadog_api_client::datadogV2::model::UpsertCatalogEntityRequest;
23
24#[tokio::main]
25async fn main() {
26 let body = UpsertCatalogEntityRequest::EntityV3(Box::new(EntityV3::EntityV3Service(Box::new(
27 EntityV3Service::new(
28 EntityV3APIVersion::V3,
29 EntityV3ServiceKind::SERVICE,
30 EntityV3Metadata::new("myService".to_string())
31 .additional_owners(vec![EntityV3MetadataAdditionalOwnersItems::new(
32 "".to_string(),
33 )])
34 .contacts(vec![EntityV3MetadataContactsItems::new(
35 "https://slack/".to_string(),
36 "slack".to_string(),
37 )])
38 .id("4b163705-23c0-4573-b2fb-f6cea2163fcb".to_string())
39 .inherit_from("application:default/myapp".to_string())
40 .links(vec![EntityV3MetadataLinksItems::new(
41 "mylink".to_string(),
42 "link".to_string(),
43 "https://mylink".to_string(),
44 )])
45 .namespace("default".to_string())
46 .tags(vec!["this:tag".to_string(), "that:tag".to_string()]),
47 )
48 .datadog(
49 EntityV3ServiceDatadog::new()
50 .code_locations(vec![EntityV3DatadogCodeLocationItem::new().paths(vec![])])
51 .events(vec![EntityV3DatadogEventItem::new()])
52 .logs(vec![EntityV3DatadogLogItem::new()])
53 .performance_data(EntityV3DatadogPerformance::new().tags(vec![]))
54 .pipelines(EntityV3DatadogPipelines::new().fingerprints(vec![])),
55 )
56 .integrations(
57 EntityV3Integrations::new()
58 .opsgenie(EntityV3DatadogIntegrationOpsgenie::new(
59 "https://www.opsgenie.com/service/shopping-cart".to_string(),
60 ))
61 .pagerduty(EntityV3DatadogIntegrationPagerduty::new(
62 "https://www.pagerduty.com/service-directory/Pshopping-cart".to_string(),
63 )),
64 )
65 .spec(
66 EntityV3ServiceSpec::new()
67 .component_of(vec![])
68 .depends_on(vec![])
69 .languages(vec![]),
70 ),
71 ))));
72 let configuration = datadog::Configuration::new();
73 let api = SoftwareCatalogAPI::with_config(configuration);
74 let resp = api.upsert_catalog_entity(body).await;
75 if let Ok(value) = resp {
76 println!("{:#?}", value);
77 } else {
78 println!("{:#?}", resp.unwrap_err());
79 }
80}