v2_roles_CreateRole_3862893229/
v2_roles_CreateRole_3862893229.rs

1// Create role with a permission returns "OK" response
2use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_roles::RolesAPI;
4use datadog_api_client::datadogV2::model::PermissionsType;
5use datadog_api_client::datadogV2::model::RelationshipToPermissionData;
6use datadog_api_client::datadogV2::model::RelationshipToPermissions;
7use datadog_api_client::datadogV2::model::RoleCreateAttributes;
8use datadog_api_client::datadogV2::model::RoleCreateData;
9use datadog_api_client::datadogV2::model::RoleCreateRequest;
10use datadog_api_client::datadogV2::model::RoleRelationships;
11use datadog_api_client::datadogV2::model::RolesType;
12
13#[tokio::main]
14async fn main() {
15    // there is a valid "permission" in the system
16    let permission_id = std::env::var("PERMISSION_ID").unwrap();
17    let body = RoleCreateRequest::new(
18        RoleCreateData::new(RoleCreateAttributes::new("Example-Role".to_string()))
19            .relationships(RoleRelationships::new().permissions(
20                RelationshipToPermissions::new().data(vec![
21                                RelationshipToPermissionData::new()
22                                    .id(permission_id.clone())
23                                    .type_(PermissionsType::PERMISSIONS)
24                            ]),
25            ))
26            .type_(RolesType::ROLES),
27    );
28    let configuration = datadog::Configuration::new();
29    let api = RolesAPI::with_config(configuration);
30    let resp = api.create_role(body).await;
31    if let Ok(value) = resp {
32        println!("{:#?}", value);
33    } else {
34        println!("{:#?}", resp.unwrap_err());
35    }
36}