diff --git a/dsc/tests/dsc_export.tests.ps1 b/dsc/tests/dsc_export.tests.ps1 index ab7aa6f15..bf71a6624 100644 --- a/dsc/tests/dsc_export.tests.ps1 +++ b/dsc/tests/dsc_export.tests.ps1 @@ -163,7 +163,7 @@ resources: $out.resources[1].properties.hello | Should -BeExactly 'world' } - It 'Export can surface _kind, _securityContext, and _name from a resource' { + It 'Export can surface _securityContext and _name from a resource' { $yaml = @' $schema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2023/08/config/document.json resources: @@ -176,9 +176,7 @@ resources: $LASTEXITCODE | Should -Be 0 $out.resources.count | Should -Be 1 $out.resources[0].name | Should -BeExactly 'TestName' - $out.resources[0].kind | Should -BeExactly 'TestKind' $out.resources[0].metadata.'Microsoft.DSC'.securityContext | Should -BeExactly 'elevated' - $out.resources[0].properties.psobject.properties.name | Should -Not -Contain '_kind' $out.resources[0].properties.psobject.properties.name | Should -Not -Contain '_securityContext' $out.resources[0].properties.psobject.properties.name | Should -Not -Contain '_name' } diff --git a/lib/dsc-lib/src/configure/config_doc.rs b/lib/dsc-lib/src/configure/config_doc.rs index 8e9640678..4a01d0294 100644 --- a/lib/dsc-lib/src/configure/config_doc.rs +++ b/lib/dsc-lib/src/configure/config_doc.rs @@ -427,44 +427,6 @@ pub struct Copy { pub batch_size: Option, } -#[derive(Debug, Clone, PartialEq, Deserialize, Serialize, JsonSchema)] -#[serde(deny_unknown_fields)] -pub struct Plan { - pub name: String, - #[serde(skip_serializing_if = "Option::is_none", rename = "promotionCode")] - pub promotion_code: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub publisher: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub product: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub version: Option, -} - -#[derive(Debug, Clone, PartialEq, Deserialize, Serialize, JsonSchema)] -#[serde(deny_unknown_fields)] -pub struct Identity { - #[serde(skip_serializing_if = "Option::is_none")] - pub r#type: Option, - #[serde(skip_serializing_if = "Option::is_none", rename = "userAssignedIdentities")] - pub user_assigned_identities: Option>, -} - -#[derive(Debug, Clone, PartialEq, Deserialize, Serialize, JsonSchema)] -#[serde(deny_unknown_fields)] -pub struct Sku { - #[serde(skip_serializing_if = "Option::is_none")] - pub name: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub tier: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub size: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub family: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub capacity: Option, -} - #[derive(Debug, Clone, PartialEq, Deserialize, Serialize, JsonSchema, DscRepoSchema)] #[serde(deny_unknown_fields, rename_all = "camelCase")] #[dsc_repo_schema(base_name = "document.resource", folder_path = "config")] @@ -480,31 +442,15 @@ pub struct Resource { #[serde(default)] pub name: String, // friendly unique instance name #[serde(skip_serializing_if = "Option::is_none")] - pub comments: Option, - #[serde(skip_serializing_if = "Option::is_none")] pub directives: Option, #[serde(skip_serializing_if = "Option::is_none")] pub execution_information: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub location: Option, - #[serde(skip_serializing_if = "Option::is_none")] #[schemars(regex(pattern = r"^\[resourceId\(\s*'[a-zA-Z0-9\.]+/[a-zA-Z0-9]+'\s*,\s*'[a-zA-Z0-9 ]+'\s*\)]$"))] pub depends_on: Option>, #[serde(skip_serializing_if = "Option::is_none")] - pub tags: Option>, - #[serde(skip_serializing_if = "Option::is_none")] - pub identity: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub sku: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub kind: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub scope: Option, - #[serde(skip_serializing_if = "Option::is_none")] pub copy: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub plan: Option, - #[serde(skip_serializing_if = "Option::is_none")] pub properties: Option>, #[serde(skip_serializing_if = "Option::is_none")] pub resources: Option>, @@ -545,19 +491,11 @@ impl Resource { depends_on: None, directives: None, execution_information: None, - kind: None, properties: None, metadata: None, condition: None, - identity: None, - sku: None, - scope: None, copy: None, - plan: None, resources: None, - comments: None, - location: None, - tags: None, require_version: None, } } diff --git a/lib/dsc-lib/src/configure/mod.rs b/lib/dsc-lib/src/configure/mod.rs index a00a0c884..e1ebf51ff 100644 --- a/lib/dsc-lib/src/configure/mod.rs +++ b/lib/dsc-lib/src/configure/mod.rs @@ -129,12 +129,6 @@ pub fn add_resource_export_results_to_configuration(resource: &DscResource, conf let mut r: Resource = config_doc::Resource::new(); r.resource_type.clone_from(&resource.type_name); let mut props: Map = serde_json::from_value(instance.clone())?; - if let Some(kind) = props.remove("_kind") { - if !kind.is_string() { - return Err(DscError::Parser(t!("configure.mod.propertyNotString", name = "_kind", value = kind).to_string())); - } - r.kind = kind.as_str().map(std::string::ToString::to_string); - } r.name = if let Some(name) = props.remove("_name") { name.as_str() .map(std::string::ToString::to_string) @@ -299,7 +293,7 @@ fn check_security_context(metadata: Option<&Metadata>, directive_security_contex let mut security_context_required: Option<&SecurityContextKind> = None; if let Some(metadata) = &metadata - && let Some(microsoft_dsc) = &metadata.microsoft + && let Some(microsoft_dsc) = &metadata.microsoft && let Some(required_security_context) = µsoft_dsc.security_context { warn!("{}", t!("configure.mod.securityContextInMetadataDeprecated")); security_context_required = Some(required_security_context); diff --git a/lib/dsc-lib/tests/integration/schemas/schema_for.rs b/lib/dsc-lib/tests/integration/schemas/schema_for.rs index d503c522b..6c0b66a06 100644 --- a/lib/dsc-lib/tests/integration/schemas/schema_for.rs +++ b/lib/dsc-lib/tests/integration/schemas/schema_for.rs @@ -47,9 +47,6 @@ macro_rules! test_schema_for { test_schema_for!(dsc_lib::configure::config_doc::DataType); test_schema_for!(dsc_lib::configure::config_doc::CopyMode); test_schema_for!(dsc_lib::configure::config_doc::Copy); - test_schema_for!(dsc_lib::configure::config_doc::Plan); - test_schema_for!(dsc_lib::configure::config_doc::Identity); - test_schema_for!(dsc_lib::configure::config_doc::Sku); test_schema_for!(dsc_lib::configure::config_doc::Resource); } #[allow(unused_must_use)] diff --git a/tools/dsctest/src/export.rs b/tools/dsctest/src/export.rs index 2e8d162f9..20c9349e5 100644 --- a/tools/dsctest/src/export.rs +++ b/tools/dsctest/src/export.rs @@ -10,8 +10,6 @@ pub struct Export { /// Number of instances to return pub count: u64, #[serde(skip_serializing_if = "Option::is_none")] - pub _kind: Option, - #[serde(skip_serializing_if = "Option::is_none")] pub _name: Option, #[serde(rename = "_securityContext", skip_serializing_if = "Option::is_none")] pub _security_context: Option, diff --git a/tools/dsctest/src/main.rs b/tools/dsctest/src/main.rs index 66d998c4d..060d07969 100644 --- a/tools/dsctest/src/main.rs +++ b/tools/dsctest/src/main.rs @@ -125,7 +125,6 @@ fn main() { for i in 0..export.count { let instance = Export { count: i, - _kind: Some("TestKind".to_string()), _name: Some("TestName".to_string()), _security_context: Some("elevated".to_string()), };