CockpitCapabilityDocument.fromJson constructor
CockpitCapabilityDocument.fromJson(
- Object? value, {
- String path = r'$',
- CockpitDecodePolicy decodePolicy = CockpitDecodePolicy.requests,
Decodes a CockpitCapabilityDocument from a JSON object.
Implementation
factory CockpitCapabilityDocument.fromJson(
Object? value, {
String path = r'$',
CockpitDecodePolicy decodePolicy = CockpitDecodePolicy.requests,
}) {
final json = CockpitFoundationValueReader.object(value, path);
const fields = <String>{
'schemaVersion',
'apiVersion',
'features',
'operations',
'resources',
};
CockpitFoundationValueReader.keys(
json,
fields,
path,
required: fields,
policy: decodePolicy,
);
final rawFeatures = CockpitFoundationValueReader.list(
json['features'],
'$path.features',
);
final rawOperations = CockpitFoundationValueReader.list(
json['operations'],
'$path.operations',
);
final rawResources = CockpitFoundationValueReader.list(
json['resources'],
'$path.resources',
);
return CockpitCapabilityDocument(
schemaVersion: CockpitFoundationValueReader.string(
json['schemaVersion'],
'$path.schemaVersion',
),
apiVersion: CockpitApiVersion.fromJson(
json['apiVersion'],
path: '$path.apiVersion',
decodePolicy: decodePolicy,
),
features: <CockpitFeatureDescriptor>[
for (var index = 0; index < rawFeatures.length; index += 1)
CockpitFeatureDescriptor.fromJson(
rawFeatures[index],
path: '$path.features[$index]',
decodePolicy: decodePolicy,
),
],
operations: <CockpitOperationDescriptor>[
for (var index = 0; index < rawOperations.length; index += 1)
CockpitOperationDescriptor.fromJson(
rawOperations[index],
path: '$path.operations[$index]',
decodePolicy: decodePolicy,
),
],
resources: <CockpitResourceDescriptor>[
for (var index = 0; index < rawResources.length; index += 1)
CockpitResourceDescriptor.fromJson(
rawResources[index],
path: '$path.resources[$index]',
decodePolicy: decodePolicy,
),
],
);
}