Skip to content

Commit 8c09de7

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Fix specification for Azure metric filtering (#435)
Co-authored-by: ci.datadog-api-spec <[email protected]>
1 parent 676d702 commit 8c09de7

13 files changed

+175
-107
lines changed

.apigentools-info

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
"spec_versions": {
55
"v1": {
66
"apigentools_version": "1.6.6",
7-
"regenerated": "2024-12-18 16:21:36.370912",
8-
"spec_repo_commit": "e12aeab9"
7+
"regenerated": "2024-12-18 17:18:31.310793",
8+
"spec_repo_commit": "8cb3faac"
99
},
1010
"v2": {
1111
"apigentools_version": "1.6.6",
12-
"regenerated": "2024-12-18 16:21:36.385710",
13-
"spec_repo_commit": "e12aeab9"
12+
"regenerated": "2024-12-18 17:18:31.326940",
13+
"spec_repo_commit": "8cb3faac"
1414
}
1515
}
1616
}

.generator/schemas/v1/openapi.yaml

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -844,8 +844,15 @@ components:
844844
Only hosts that match one of the defined tags are imported into Datadog.'
845845
example: key:value,filter:example
846846
type: string
847-
metrics_config:
848-
$ref: '#/components/schemas/AzureAccountMetricsConfig'
847+
metrics_enabled:
848+
description: Enable Azure metrics for your organization.
849+
example: true
850+
type: boolean
851+
metrics_enabled_default:
852+
description: Enable Azure metrics for your organization for resource providers
853+
where no resource provider config is specified.
854+
example: true
855+
type: boolean
849856
new_client_id:
850857
description: Your New Azure web application ID.
851858
example: new1c7f6-1234-5678-9101-3fcbf464test
@@ -860,37 +867,26 @@ components:
860867
monitored by this app registration.
861868
example: true
862869
type: boolean
870+
resource_provider_configs:
871+
description: Configuration settings applied to resources from the specified
872+
Azure resource providers.
873+
items:
874+
$ref: '#/components/schemas/ResourceProviderConfig'
875+
type: array
863876
tenant_name:
864877
description: Your Azure Active Directory ID.
865878
example: testc44-1234-5678-9101-cc00736ftest
866879
type: string
880+
usage_metrics_enabled:
881+
description: Enable azure.usage metrics for your organization.
882+
example: true
883+
type: boolean
867884
type: object
868885
AzureAccountListResponse:
869886
description: Accounts configured for your organization.
870887
items:
871888
$ref: '#/components/schemas/AzureAccount'
872889
type: array
873-
AzureAccountMetricsConfig:
874-
description: 'Dictionary containing the key `excluded_resource_providers` which
875-
has to be a list of Microsoft Azure Resource Provider names.
876-
877-
This feature is currently being beta tested.
878-
879-
In order to enable all resource providers for metric collection, pass:
880-
881-
`metrics_config: {"excluded_resource_providers": []}` (i.e., an empty list
882-
for `excluded_resource_providers`).'
883-
properties:
884-
excluded_resource_providers:
885-
description: List of Microsoft Azure Resource Providers to exclude from
886-
metric collection.
887-
example:
888-
- Microsoft.Sql
889-
- Microsoft.Cdn
890-
items:
891-
type: string
892-
type: array
893-
type: object
894890
CancelDowntimesByScopeRequest:
895891
description: Cancel downtimes according to scope.
896892
properties:
@@ -10209,6 +10205,19 @@ components:
1020910205
- lookup_enrichment_table
1021010206
- type
1021110207
type: object
10208+
ResourceProviderConfig:
10209+
description: Configuration settings applied to resources from the specified
10210+
Azure resource provider.
10211+
properties:
10212+
metrics_enabled:
10213+
description: Collect metrics for resources from this provider.
10214+
example: true
10215+
type: boolean
10216+
namespace:
10217+
description: The provider namespace to apply this configuration to.
10218+
example: Microsoft.Compute
10219+
type: string
10220+
type: object
1021210221
ResponseMetaAttributes:
1021310222
description: Object describing meta attributes of response.
1021410223
properties:

examples/v1_azure-integration_UpdateAzureHostFilters.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
use datadog_api_client::datadog;
33
use datadog_api_client::datadogV1::api_azure_integration::AzureIntegrationAPI;
44
use datadog_api_client::datadogV1::model::AzureAccount;
5-
use datadog_api_client::datadogV1::model::AzureAccountMetricsConfig;
5+
use datadog_api_client::datadogV1::model::ResourceProviderConfig;
66

77
#[tokio::main]
88
async fn main() {
@@ -16,16 +16,16 @@ async fn main() {
1616
.custom_metrics_enabled(true)
1717
.errors(vec!["*".to_string()])
1818
.host_filters("key:value,filter:example".to_string())
19-
.metrics_config(
20-
AzureAccountMetricsConfig::new().excluded_resource_providers(vec![
21-
"Microsoft.Sql".to_string(),
22-
"Microsoft.Cdn".to_string(),
23-
]),
24-
)
19+
.metrics_enabled(true)
20+
.metrics_enabled_default(true)
2521
.new_client_id("new1c7f6-1234-5678-9101-3fcbf464test".to_string())
2622
.new_tenant_name("new1c44-1234-5678-9101-cc00736ftest".to_string())
2723
.resource_collection_enabled(true)
28-
.tenant_name("testc44-1234-5678-9101-cc00736ftest".to_string());
24+
.resource_provider_configs(vec![ResourceProviderConfig::new()
25+
.metrics_enabled(true)
26+
.namespace("Microsoft.Compute".to_string())])
27+
.tenant_name("testc44-1234-5678-9101-cc00736ftest".to_string())
28+
.usage_metrics_enabled(true);
2929
let configuration = datadog::Configuration::new();
3030
let api = AzureIntegrationAPI::with_config(configuration);
3131
let resp = api.update_azure_host_filters(body).await;

examples/v1_azure-integration_UpdateAzureIntegration.rs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
use datadog_api_client::datadog;
33
use datadog_api_client::datadogV1::api_azure_integration::AzureIntegrationAPI;
44
use datadog_api_client::datadogV1::model::AzureAccount;
5-
use datadog_api_client::datadogV1::model::AzureAccountMetricsConfig;
65

76
#[tokio::main]
87
async fn main() {
@@ -16,12 +15,6 @@ async fn main() {
1615
.custom_metrics_enabled(true)
1716
.errors(vec!["*".to_string()])
1817
.host_filters("key:value,filter:example".to_string())
19-
.metrics_config(
20-
AzureAccountMetricsConfig::new().excluded_resource_providers(vec![
21-
"Microsoft.Sql".to_string(),
22-
"Microsoft.Cdn".to_string(),
23-
]),
24-
)
2518
.new_client_id("".to_string())
2619
.new_tenant_name("".to_string())
2720
.resource_collection_enabled(true)

src/datadogV1/model/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -752,8 +752,8 @@ pub mod model_aws_logs_services_request;
752752
pub use self::model_aws_logs_services_request::AWSLogsServicesRequest;
753753
pub mod model_azure_account;
754754
pub use self::model_azure_account::AzureAccount;
755-
pub mod model_azure_account_metrics_config;
756-
pub use self::model_azure_account_metrics_config::AzureAccountMetricsConfig;
755+
pub mod model_resource_provider_config;
756+
pub use self::model_resource_provider_config::ResourceProviderConfig;
757757
pub mod model_gcp_account;
758758
pub use self::model_gcp_account::GCPAccount;
759759
pub mod model_pager_duty_service;

src/datadogV1/model/model_azure_account.rs

Lines changed: 69 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,12 @@ pub struct AzureAccount {
4242
/// Only hosts that match one of the defined tags are imported into Datadog.
4343
#[serde(rename = "host_filters")]
4444
pub host_filters: Option<String>,
45-
/// Dictionary containing the key `excluded_resource_providers` which has to be a list of Microsoft Azure Resource Provider names.
46-
/// This feature is currently being beta tested.
47-
/// In order to enable all resource providers for metric collection, pass:
48-
/// `metrics_config: {"excluded_resource_providers": []}` (i.e., an empty list for `excluded_resource_providers`).
49-
#[serde(rename = "metrics_config")]
50-
pub metrics_config: Option<crate::datadogV1::model::AzureAccountMetricsConfig>,
45+
/// Enable Azure metrics for your organization.
46+
#[serde(rename = "metrics_enabled")]
47+
pub metrics_enabled: Option<bool>,
48+
/// Enable Azure metrics for your organization for resource providers where no resource provider config is specified.
49+
#[serde(rename = "metrics_enabled_default")]
50+
pub metrics_enabled_default: Option<bool>,
5151
/// Your New Azure web application ID.
5252
#[serde(rename = "new_client_id")]
5353
pub new_client_id: Option<String>,
@@ -57,9 +57,15 @@ pub struct AzureAccount {
5757
/// When enabled, Datadog collects metadata and configuration info from cloud resources (compute instances, databases, load balancers, etc.) monitored by this app registration.
5858
#[serde(rename = "resource_collection_enabled")]
5959
pub resource_collection_enabled: Option<bool>,
60+
/// Configuration settings applied to resources from the specified Azure resource providers.
61+
#[serde(rename = "resource_provider_configs")]
62+
pub resource_provider_configs: Option<Vec<crate::datadogV1::model::ResourceProviderConfig>>,
6063
/// Your Azure Active Directory ID.
6164
#[serde(rename = "tenant_name")]
6265
pub tenant_name: Option<String>,
66+
/// Enable azure.usage metrics for your organization.
67+
#[serde(rename = "usage_metrics_enabled")]
68+
pub usage_metrics_enabled: Option<bool>,
6369
#[serde(flatten)]
6470
pub additional_properties: std::collections::BTreeMap<String, serde_json::Value>,
6571
#[serde(skip)]
@@ -79,11 +85,14 @@ impl AzureAccount {
7985
custom_metrics_enabled: None,
8086
errors: None,
8187
host_filters: None,
82-
metrics_config: None,
88+
metrics_enabled: None,
89+
metrics_enabled_default: None,
8390
new_client_id: None,
8491
new_tenant_name: None,
8592
resource_collection_enabled: None,
93+
resource_provider_configs: None,
8694
tenant_name: None,
95+
usage_metrics_enabled: None,
8796
additional_properties: std::collections::BTreeMap::new(),
8897
_unparsed: false,
8998
}
@@ -134,11 +143,13 @@ impl AzureAccount {
134143
self
135144
}
136145

137-
pub fn metrics_config(
138-
mut self,
139-
value: crate::datadogV1::model::AzureAccountMetricsConfig,
140-
) -> Self {
141-
self.metrics_config = Some(value);
146+
pub fn metrics_enabled(mut self, value: bool) -> Self {
147+
self.metrics_enabled = Some(value);
148+
self
149+
}
150+
151+
pub fn metrics_enabled_default(mut self, value: bool) -> Self {
152+
self.metrics_enabled_default = Some(value);
142153
self
143154
}
144155

@@ -157,11 +168,24 @@ impl AzureAccount {
157168
self
158169
}
159170

171+
pub fn resource_provider_configs(
172+
mut self,
173+
value: Vec<crate::datadogV1::model::ResourceProviderConfig>,
174+
) -> Self {
175+
self.resource_provider_configs = Some(value);
176+
self
177+
}
178+
160179
pub fn tenant_name(mut self, value: String) -> Self {
161180
self.tenant_name = Some(value);
162181
self
163182
}
164183

184+
pub fn usage_metrics_enabled(mut self, value: bool) -> Self {
185+
self.usage_metrics_enabled = Some(value);
186+
self
187+
}
188+
165189
pub fn additional_properties(
166190
mut self,
167191
value: std::collections::BTreeMap<String, serde_json::Value>,
@@ -203,12 +227,16 @@ impl<'de> Deserialize<'de> for AzureAccount {
203227
let mut custom_metrics_enabled: Option<bool> = None;
204228
let mut errors: Option<Vec<String>> = None;
205229
let mut host_filters: Option<String> = None;
206-
let mut metrics_config: Option<crate::datadogV1::model::AzureAccountMetricsConfig> =
207-
None;
230+
let mut metrics_enabled: Option<bool> = None;
231+
let mut metrics_enabled_default: Option<bool> = None;
208232
let mut new_client_id: Option<String> = None;
209233
let mut new_tenant_name: Option<String> = None;
210234
let mut resource_collection_enabled: Option<bool> = None;
235+
let mut resource_provider_configs: Option<
236+
Vec<crate::datadogV1::model::ResourceProviderConfig>,
237+
> = None;
211238
let mut tenant_name: Option<String> = None;
239+
let mut usage_metrics_enabled: Option<bool> = None;
212240
let mut additional_properties: std::collections::BTreeMap<
213241
String,
214242
serde_json::Value,
@@ -277,11 +305,18 @@ impl<'de> Deserialize<'de> for AzureAccount {
277305
host_filters =
278306
Some(serde_json::from_value(v).map_err(M::Error::custom)?);
279307
}
280-
"metrics_config" => {
308+
"metrics_enabled" => {
309+
if v.is_null() {
310+
continue;
311+
}
312+
metrics_enabled =
313+
Some(serde_json::from_value(v).map_err(M::Error::custom)?);
314+
}
315+
"metrics_enabled_default" => {
281316
if v.is_null() {
282317
continue;
283318
}
284-
metrics_config =
319+
metrics_enabled_default =
285320
Some(serde_json::from_value(v).map_err(M::Error::custom)?);
286321
}
287322
"new_client_id" => {
@@ -305,13 +340,27 @@ impl<'de> Deserialize<'de> for AzureAccount {
305340
resource_collection_enabled =
306341
Some(serde_json::from_value(v).map_err(M::Error::custom)?);
307342
}
343+
"resource_provider_configs" => {
344+
if v.is_null() {
345+
continue;
346+
}
347+
resource_provider_configs =
348+
Some(serde_json::from_value(v).map_err(M::Error::custom)?);
349+
}
308350
"tenant_name" => {
309351
if v.is_null() {
310352
continue;
311353
}
312354
tenant_name =
313355
Some(serde_json::from_value(v).map_err(M::Error::custom)?);
314356
}
357+
"usage_metrics_enabled" => {
358+
if v.is_null() {
359+
continue;
360+
}
361+
usage_metrics_enabled =
362+
Some(serde_json::from_value(v).map_err(M::Error::custom)?);
363+
}
315364
&_ => {
316365
if let Ok(value) = serde_json::from_value(v.clone()) {
317366
additional_properties.insert(k, value);
@@ -330,11 +379,14 @@ impl<'de> Deserialize<'de> for AzureAccount {
330379
custom_metrics_enabled,
331380
errors,
332381
host_filters,
333-
metrics_config,
382+
metrics_enabled,
383+
metrics_enabled_default,
334384
new_client_id,
335385
new_tenant_name,
336386
resource_collection_enabled,
387+
resource_provider_configs,
337388
tenant_name,
389+
usage_metrics_enabled,
338390
additional_properties,
339391
_unparsed,
340392
};

0 commit comments

Comments
 (0)