>, settings_table?: array, warnings: array} */ public function normalize(?array $snapshot, string $policyType, ?string $platform = null): array { $snapshot = $snapshot ?? []; $normalized = $this->defaultNormalizer->normalize($snapshot, $policyType, $platform); if ($snapshot === []) { return $normalized; } $block = $this->buildQualityUpdateBlock($snapshot); if ($block !== null) { $normalized['settings'][] = $block; $normalized['settings'] = array_values(array_filter($normalized['settings'])); } return $normalized; } /** * @return array */ public function flattenForDiff(?array $snapshot, string $policyType, ?string $platform = null): array { $snapshot = $snapshot ?? []; $normalized = $this->normalize($snapshot, $policyType, $platform); return $this->defaultNormalizer->flattenNormalizedForDiff($normalized); } private function buildQualityUpdateBlock(array $snapshot): ?array { $entries = []; $displayName = Arr::get($snapshot, 'displayName'); if (is_string($displayName) && $displayName !== '') { $entries[] = ['key' => 'Name', 'value' => $displayName]; } $release = Arr::get($snapshot, 'releaseDateDisplayName'); if (is_string($release) && $release !== '') { $entries[] = ['key' => 'Release', 'value' => $release]; } $content = Arr::get($snapshot, 'deployableContentDisplayName'); if (is_string($content) && $content !== '') { $entries[] = ['key' => 'Deployable content', 'value' => $content]; } if ($entries === []) { return null; } return [ 'type' => 'keyValue', 'title' => 'Quality Update Profile', 'entries' => $entries, ]; } }