v2_reference_tables_CreateReferenceTable_3196130987/
v2_reference-tables_CreateReferenceTable_3196130987.rs

1// Create reference table with upload returns "Created" response
2use 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::CreateTableRequestDataAttributesFileMetadataLocalFile;
9use datadog_api_client::datadogV2::model::CreateTableRequestDataAttributesSchema;
10use datadog_api_client::datadogV2::model::CreateTableRequestDataAttributesSchemaFieldsItems;
11use datadog_api_client::datadogV2::model::CreateTableRequestDataType;
12use datadog_api_client::datadogV2::model::ReferenceTableCreateSourceType;
13use datadog_api_client::datadogV2::model::ReferenceTableSchemaFieldType;
14
15#[tokio::main]
16async fn main() {
17    let body =
18        CreateTableRequest
19        ::new().data(
20            CreateTableRequestData::new(
21                CreateTableRequestDataType::REFERENCE_TABLE,
22            ).attributes(
23                CreateTableRequestDataAttributes::new(
24                    CreateTableRequestDataAttributesSchema::new(
25                        vec![
26                            CreateTableRequestDataAttributesSchemaFieldsItems::new(
27                                "id".to_string(),
28                                ReferenceTableSchemaFieldType::STRING,
29                            ),
30                            CreateTableRequestDataAttributesSchemaFieldsItems::new(
31                                "name".to_string(),
32                                ReferenceTableSchemaFieldType::STRING,
33                            ),
34                            CreateTableRequestDataAttributesSchemaFieldsItems::new(
35                                "value".to_string(),
36                                ReferenceTableSchemaFieldType::INT32,
37                            )
38                        ],
39                        vec!["id".to_string()],
40                    ),
41                    ReferenceTableCreateSourceType::LOCAL_FILE,
42                    "test_reference_table_Example-Reference-Table".to_string(),
43                )
44                    .description("Test reference table created via BDD test Example-Reference-Table".to_string())
45                    .file_metadata(
46                        CreateTableRequestDataAttributesFileMetadata
47                        ::CreateTableRequestDataAttributesFileMetadataLocalFile(
48                            Box::new(
49                                CreateTableRequestDataAttributesFileMetadataLocalFile::new(
50                                    "test-upload-id-Example-Reference-Table".to_string(),
51                                ),
52                            ),
53                        ),
54                    )
55                    .tags(vec!["test_tag".to_string()]),
56            ),
57        );
58    let configuration = datadog::Configuration::new();
59    let api = ReferenceTablesAPI::with_config(configuration);
60    let resp = api.create_reference_table(body).await;
61    if let Ok(value) = resp {
62        println!("{:#?}", value);
63    } else {
64        println!("{:#?}", resp.unwrap_err());
65    }
66}