Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 38 additions & 4 deletions .generator/schemas/v2/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -91507,6 +91507,10 @@ components:
properties:
attributes:
$ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteAttributes"
id:
description: Request ID. This value is echoed back as the response's resource ID.
example: bulk_delete
type: string
type:
$ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteRequestDataType"
required:
Expand All @@ -91531,6 +91535,12 @@ components:
- BULK_DELETE_RULES
SecurityMonitoringRuleBulkDeleteResponse:
description: Response for bulk deleting security monitoring rules.
properties:
data:
$ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteResponseData"
type: object
SecurityMonitoringRuleBulkDeleteResponseAttributes:
description: Attributes for the bulk delete response.
properties:
deletedRules:
description: List of successfully deleted rule IDs.
Expand All @@ -91543,6 +91553,25 @@ components:
type: string
type: array
type: object
SecurityMonitoringRuleBulkDeleteResponseData:
description: Data for the bulk delete response.
properties:
attributes:
$ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteResponseAttributes"
id:
description: The identifier of the bulk delete response.
type: string
type:
$ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteResponseDataType"
type: object
SecurityMonitoringRuleBulkDeleteResponseDataType:
description: The resource type for a bulk delete response.
enum:
- bulk_delete_response
example: bulk_delete_response
type: string
x-enum-varnames:
- BULK_DELETE_RESPONSE
SecurityMonitoringRuleBulkExportAttributes:
description: Attributes for bulk exporting security monitoring rules.
properties:
Expand Down Expand Up @@ -185417,6 +185446,7 @@ paths:
ruleIds:
- abc-000-u7q
- abc-000-7dd
id: bulk_delete
type: bulk_delete_rules
schema:
$ref: "#/components/schemas/SecurityMonitoringRuleBulkDeletePayload"
Expand All @@ -185428,10 +185458,14 @@ paths:
examples:
default:
value:
deletedRules:
- abc-000-u7q
- abc-000-7dd
failedRules: []
data:
attributes:
deletedRules:
- abc-000-u7q
- abc-000-7dd
failedRules: []
id: bulk_delete_response
type: bulk_delete_response
schema:
$ref: "#/components/schemas/SecurityMonitoringRuleBulkDeleteResponse"
description: OK
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,16 @@ use datadog_api_client::datadogV2::model::SecurityMonitoringRuleBulkDeleteReques

#[tokio::main]
async fn main() {
let body =
SecurityMonitoringRuleBulkDeletePayload::new(SecurityMonitoringRuleBulkDeleteData::new(
let body = SecurityMonitoringRuleBulkDeletePayload::new(
SecurityMonitoringRuleBulkDeleteData::new(
SecurityMonitoringRuleBulkDeleteAttributes::new(vec![
"abc-000-u7q".to_string(),
"abc-000-7dd".to_string(),
]),
SecurityMonitoringRuleBulkDeleteRequestDataType::BULK_DELETE_RULES,
));
)
.id("bulk_delete".to_string()),
);
let configuration = datadog::Configuration::new();
let api = SecurityMonitoringAPI::with_config(configuration);
let resp = api.bulk_delete_security_monitoring_rules(body).await;
Expand Down
6 changes: 6 additions & 0 deletions src/datadogV2/model/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11286,6 +11286,12 @@ pub mod model_security_monitoring_rule_bulk_delete_request_data_type;
pub use self::model_security_monitoring_rule_bulk_delete_request_data_type::SecurityMonitoringRuleBulkDeleteRequestDataType;
pub mod model_security_monitoring_rule_bulk_delete_response;
pub use self::model_security_monitoring_rule_bulk_delete_response::SecurityMonitoringRuleBulkDeleteResponse;
pub mod model_security_monitoring_rule_bulk_delete_response_data;
pub use self::model_security_monitoring_rule_bulk_delete_response_data::SecurityMonitoringRuleBulkDeleteResponseData;
pub mod model_security_monitoring_rule_bulk_delete_response_attributes;
pub use self::model_security_monitoring_rule_bulk_delete_response_attributes::SecurityMonitoringRuleBulkDeleteResponseAttributes;
pub mod model_security_monitoring_rule_bulk_delete_response_data_type;
pub use self::model_security_monitoring_rule_bulk_delete_response_data_type::SecurityMonitoringRuleBulkDeleteResponseDataType;
pub mod model_security_monitoring_rule_bulk_export_payload;
pub use self::model_security_monitoring_rule_bulk_export_payload::SecurityMonitoringRuleBulkExportPayload;
pub mod model_security_monitoring_rule_bulk_export_data;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ pub struct SecurityMonitoringRuleBulkDeleteData {
/// Attributes for bulk deleting security monitoring rules.
#[serde(rename = "attributes")]
pub attributes: crate::datadogV2::model::SecurityMonitoringRuleBulkDeleteAttributes,
/// Request ID. This value is echoed back as the response's resource ID.
#[serde(rename = "id")]
pub id: Option<String>,
/// The resource type for a bulk delete request.
#[serde(rename = "type")]
pub type_: crate::datadogV2::model::SecurityMonitoringRuleBulkDeleteRequestDataType,
Expand All @@ -31,12 +34,18 @@ impl SecurityMonitoringRuleBulkDeleteData {
) -> SecurityMonitoringRuleBulkDeleteData {
SecurityMonitoringRuleBulkDeleteData {
attributes,
id: None,
type_,
additional_properties: std::collections::BTreeMap::new(),
_unparsed: false,
}
}

pub fn id(mut self, value: String) -> Self {
self.id = Some(value);
self
}

pub fn additional_properties(
mut self,
value: std::collections::BTreeMap<String, serde_json::Value>,
Expand Down Expand Up @@ -66,6 +75,7 @@ impl<'de> Deserialize<'de> for SecurityMonitoringRuleBulkDeleteData {
let mut attributes: Option<
crate::datadogV2::model::SecurityMonitoringRuleBulkDeleteAttributes,
> = None;
let mut id: Option<String> = None;
let mut type_: Option<
crate::datadogV2::model::SecurityMonitoringRuleBulkDeleteRequestDataType,
> = None;
Expand All @@ -80,6 +90,12 @@ impl<'de> Deserialize<'de> for SecurityMonitoringRuleBulkDeleteData {
"attributes" => {
attributes = Some(serde_json::from_value(v).map_err(M::Error::custom)?);
}
"id" => {
if v.is_null() {
continue;
}
id = Some(serde_json::from_value(v).map_err(M::Error::custom)?);
}
"type" => {
type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?);
if let Some(ref _type_) = type_ {
Expand All @@ -103,6 +119,7 @@ impl<'de> Deserialize<'de> for SecurityMonitoringRuleBulkDeleteData {

let content = SecurityMonitoringRuleBulkDeleteData {
attributes,
id,
type_,
additional_properties,
_unparsed,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,9 @@ use std::fmt::{self, Formatter};
#[skip_serializing_none]
#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct SecurityMonitoringRuleBulkDeleteResponse {
/// List of successfully deleted rule IDs.
#[serde(rename = "deletedRules")]
pub deleted_rules: Option<Vec<String>>,
/// List of rule IDs that could not be deleted.
#[serde(rename = "failedRules")]
pub failed_rules: Option<Vec<String>>,
/// Data for the bulk delete response.
#[serde(rename = "data")]
pub data: Option<crate::datadogV2::model::SecurityMonitoringRuleBulkDeleteResponseData>,
#[serde(flatten)]
pub additional_properties: std::collections::BTreeMap<String, serde_json::Value>,
#[serde(skip)]
Expand All @@ -27,20 +24,17 @@ pub struct SecurityMonitoringRuleBulkDeleteResponse {
impl SecurityMonitoringRuleBulkDeleteResponse {
pub fn new() -> SecurityMonitoringRuleBulkDeleteResponse {
SecurityMonitoringRuleBulkDeleteResponse {
deleted_rules: None,
failed_rules: None,
data: None,
additional_properties: std::collections::BTreeMap::new(),
_unparsed: false,
}
}

pub fn deleted_rules(mut self, value: Vec<String>) -> Self {
self.deleted_rules = Some(value);
self
}

pub fn failed_rules(mut self, value: Vec<String>) -> Self {
self.failed_rules = Some(value);
pub fn data(
mut self,
value: crate::datadogV2::model::SecurityMonitoringRuleBulkDeleteResponseData,
) -> Self {
self.data = Some(value);
self
}

Expand Down Expand Up @@ -76,8 +70,9 @@ impl<'de> Deserialize<'de> for SecurityMonitoringRuleBulkDeleteResponse {
where
M: MapAccess<'a>,
{
let mut deleted_rules: Option<Vec<String>> = None;
let mut failed_rules: Option<Vec<String>> = None;
let mut data: Option<
crate::datadogV2::model::SecurityMonitoringRuleBulkDeleteResponseData,
> = None;
let mut additional_properties: std::collections::BTreeMap<
String,
serde_json::Value,
Expand All @@ -86,19 +81,11 @@ impl<'de> Deserialize<'de> for SecurityMonitoringRuleBulkDeleteResponse {

while let Some((k, v)) = map.next_entry::<String, serde_json::Value>()? {
match k.as_str() {
"deletedRules" => {
if v.is_null() {
continue;
}
deleted_rules =
Some(serde_json::from_value(v).map_err(M::Error::custom)?);
}
"failedRules" => {
"data" => {
if v.is_null() {
continue;
}
failed_rules =
Some(serde_json::from_value(v).map_err(M::Error::custom)?);
data = Some(serde_json::from_value(v).map_err(M::Error::custom)?);
}
&_ => {
if let Ok(value) = serde_json::from_value(v.clone()) {
Expand All @@ -109,8 +96,7 @@ impl<'de> Deserialize<'de> for SecurityMonitoringRuleBulkDeleteResponse {
}

let content = SecurityMonitoringRuleBulkDeleteResponse {
deleted_rules,
failed_rules,
data,
additional_properties,
_unparsed,
};
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
// Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
// This product includes software developed at Datadog (https://www.datadoghq.com/).
// Copyright 2019-Present Datadog, Inc.
use serde::de::{Error, MapAccess, Visitor};
use serde::{Deserialize, Deserializer, Serialize};
use serde_with::skip_serializing_none;
use std::fmt::{self, Formatter};

/// Attributes for the bulk delete response.
#[non_exhaustive]
#[skip_serializing_none]
#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct SecurityMonitoringRuleBulkDeleteResponseAttributes {
/// List of successfully deleted rule IDs.
#[serde(rename = "deletedRules")]
pub deleted_rules: Option<Vec<String>>,
/// List of rule IDs that could not be deleted.
#[serde(rename = "failedRules")]
pub failed_rules: Option<Vec<String>>,
#[serde(flatten)]
pub additional_properties: std::collections::BTreeMap<String, serde_json::Value>,
#[serde(skip)]
#[serde(default)]
pub(crate) _unparsed: bool,
}

impl SecurityMonitoringRuleBulkDeleteResponseAttributes {
pub fn new() -> SecurityMonitoringRuleBulkDeleteResponseAttributes {
SecurityMonitoringRuleBulkDeleteResponseAttributes {
deleted_rules: None,
failed_rules: None,
additional_properties: std::collections::BTreeMap::new(),
_unparsed: false,
}
}

pub fn deleted_rules(mut self, value: Vec<String>) -> Self {
self.deleted_rules = Some(value);
self
}

pub fn failed_rules(mut self, value: Vec<String>) -> Self {
self.failed_rules = Some(value);
self
}

pub fn additional_properties(
mut self,
value: std::collections::BTreeMap<String, serde_json::Value>,
) -> Self {
self.additional_properties = value;
self
}
}

impl Default for SecurityMonitoringRuleBulkDeleteResponseAttributes {
fn default() -> Self {
Self::new()
}
}

impl<'de> Deserialize<'de> for SecurityMonitoringRuleBulkDeleteResponseAttributes {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
struct SecurityMonitoringRuleBulkDeleteResponseAttributesVisitor;
impl<'a> Visitor<'a> for SecurityMonitoringRuleBulkDeleteResponseAttributesVisitor {
type Value = SecurityMonitoringRuleBulkDeleteResponseAttributes;

fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result {
f.write_str("a mapping")
}

fn visit_map<M>(self, mut map: M) -> Result<Self::Value, M::Error>
where
M: MapAccess<'a>,
{
let mut deleted_rules: Option<Vec<String>> = None;
let mut failed_rules: Option<Vec<String>> = None;
let mut additional_properties: std::collections::BTreeMap<
String,
serde_json::Value,
> = std::collections::BTreeMap::new();
let mut _unparsed = false;

while let Some((k, v)) = map.next_entry::<String, serde_json::Value>()? {
match k.as_str() {
"deletedRules" => {
if v.is_null() {
continue;
}
deleted_rules =
Some(serde_json::from_value(v).map_err(M::Error::custom)?);
}
"failedRules" => {
if v.is_null() {
continue;
}
failed_rules =
Some(serde_json::from_value(v).map_err(M::Error::custom)?);
}
&_ => {
if let Ok(value) = serde_json::from_value(v.clone()) {
additional_properties.insert(k, value);
}
}
}
}

let content = SecurityMonitoringRuleBulkDeleteResponseAttributes {
deleted_rules,
failed_rules,
additional_properties,
_unparsed,
};

Ok(content)
}
}

deserializer.deserialize_any(SecurityMonitoringRuleBulkDeleteResponseAttributesVisitor)
}
}
Loading
Loading