v2_reference_tables_CreateReferenceTable/
v2_reference-tables_CreateReferenceTable.rs1use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_reference_tables::ReferenceTablesAPI;
4use datadog_api_client::datadogV2::model::CreateTableRequest;
5use datadog_api_client::datadogV2::model::CreateTableRequestData;
6use datadog_api_client::datadogV2::model::CreateTableRequestDataAttributes;
7use datadog_api_client::datadogV2::model::CreateTableRequestDataAttributesFileMetadata;
8use datadog_api_client::datadogV2::model::CreateTableRequestDataAttributesFileMetadataCloudStorage;
9use datadog_api_client::datadogV2::model::CreateTableRequestDataAttributesFileMetadataOneOfAccessDetails;
10use datadog_api_client::datadogV2::model::CreateTableRequestDataAttributesFileMetadataOneOfAccessDetailsAwsDetail;
11use datadog_api_client::datadogV2::model::CreateTableRequestDataAttributesSchema;
12use datadog_api_client::datadogV2::model::CreateTableRequestDataAttributesSchemaFieldsItems;
13use datadog_api_client::datadogV2::model::CreateTableRequestDataType;
14use datadog_api_client::datadogV2::model::ReferenceTableCreateSourceType;
15use datadog_api_client::datadogV2::model::ReferenceTableSchemaFieldType;
16
17#[tokio::main]
18async fn main() {
19 let body =
20 CreateTableRequest
21 ::new().data(
22 CreateTableRequestData::new(
23 CreateTableRequestDataType::REFERENCE_TABLE,
24 ).attributes(
25 CreateTableRequestDataAttributes::new(
26 CreateTableRequestDataAttributesSchema::new(
27 vec![
28 CreateTableRequestDataAttributesSchemaFieldsItems::new(
29 "name".to_string(),
30 ReferenceTableSchemaFieldType::STRING,
31 ),
32 CreateTableRequestDataAttributesSchemaFieldsItems::new(
33 "account_id".to_string(),
34 ReferenceTableSchemaFieldType::STRING,
35 )
36 ],
37 vec!["account_id".to_string()],
38 ),
39 ReferenceTableCreateSourceType::S3,
40 "test_reference_table".to_string(),
41 )
42 .description("this is a cloud table generated via a cloud bucket sync".to_string())
43 .file_metadata(
44 CreateTableRequestDataAttributesFileMetadata
45 ::CreateTableRequestDataAttributesFileMetadataCloudStorage(
46 Box::new(
47 CreateTableRequestDataAttributesFileMetadataCloudStorage::new(
48 CreateTableRequestDataAttributesFileMetadataOneOfAccessDetails
49 ::new().aws_detail(
50 CreateTableRequestDataAttributesFileMetadataOneOfAccessDetailsAwsDetail::new(
51 "test-account-id".to_string(),
52 "test-bucket".to_string(),
53 "test_rt.csv".to_string(),
54 ),
55 ),
56 true,
57 ),
58 ),
59 ),
60 )
61 .tags(vec!["test_tag".to_string()]),
62 ),
63 );
64 let configuration = datadog::Configuration::new();
65 let api = ReferenceTablesAPI::with_config(configuration);
66 let resp = api.create_reference_table(body).await;
67 if let Ok(value) = resp {
68 println!("{:#?}", value);
69 } else {
70 println!("{:#?}", resp.unwrap_err());
71 }
72}