{
    "linux": {
        "description": "Linux platform-specific configurations",
        "type": "object",
        "properties": {
            "devices": {
                "type": "array",
                "items": {
                    "$ref": "defs-linux.json#/definitions/Device"
                }
            },
            "uidMappings": {
                "type": "array",
                "items": {
                    "$ref": "defs.json#/definitions/IDMapping"
                }
            },
            "gidMappings": {
                "type": "array",
                "items": {
                    "$ref": "defs.json#/definitions/IDMapping"
                }
            },
            "namespaces": {
                "type": "array",
                "items": {
                    "anyOf": [
                        {
                            "$ref": "defs-linux.json#/definitions/NamespaceReference"
                        }
                    ]
                }
            },
            "resources": {
                "type": "object",
                "properties": {
                    "unified": {
                        "$ref": "defs.json#/definitions/mapStringString"
                    },
                    "devices": {
                        "type": "array",
                        "items": {
                            "$ref": "defs-linux.json#/definitions/DeviceCgroup"
                        }
                    },
                    "pids": {
                        "type": "object",
                        "properties": {
                            "limit": {
                                "$ref": "defs.json#/definitions/int64"
                            }
                        },
                        "required": [
                            "limit"
                        ]
                    },
                    "blockIO": {
                        "type": "object",
                        "properties": {
                            "weight": {
                                "$ref": "defs-linux.json#/definitions/weight"
                            },
                            "leafWeight": {
                                "$ref": "defs-linux.json#/definitions/weight"
                            },
                            "throttleReadBpsDevice": {
                                "type": "array",
                                "items": {
                                    "$ref": "defs-linux.json#/definitions/blockIODeviceThrottle"
                                }
                            },
                            "throttleWriteBpsDevice": {
                                "type": "array",
                                "items": {
                                    "$ref": "defs-linux.json#/definitions/blockIODeviceThrottle"
                                }
                            },
                            "throttleReadIOPSDevice": {
                                "type": "array",
                                "items": {
                                    "$ref": "defs-linux.json#/definitions/blockIODeviceThrottle"
                                }
                            },
                            "throttleWriteIOPSDevice": {
                                "type": "array",
                                "items": {
                                    "$ref": "defs-linux.json#/definitions/blockIODeviceThrottle"
                                }
                            },
                            "weightDevice": {
                                "type": "array",
                                "items": {
                                    "$ref": "defs-linux.json#/definitions/blockIODeviceWeight"
                                }
                            }
                        }
                    },
                    "cpu": {
                        "type": "object",
                        "properties": {
                            "cpus": {
                                "type": "string"
                            },
                            "mems": {
                                "type": "string"
                            },
                            "period": {
                                "$ref": "defs.json#/definitions/uint64"
                            },
                            "quota": {
                                "$ref": "defs.json#/definitions/int64"
                            },
                            "realtimePeriod": {
                                "$ref": "defs.json#/definitions/uint64"
                            },
                            "realtimeRuntime": {
                                "$ref": "defs.json#/definitions/int64"
                            },
                            "shares": {
                                "$ref": "defs.json#/definitions/uint64"
                            }
                        }
                    },
                    "hugepageLimits": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "pageSize": {
                                    "type": "string",
                                    "pattern": "^[1-9][0-9]*[KMG]B$"
                                },
                                "limit": {
                                    "$ref": "defs.json#/definitions/uint64"
                                }
                            },
                            "required": [
                                "pageSize",
                                "limit"
                            ]
                        }
                    },
                    "memory": {
                        "type": "object",
                        "properties": {
                            "kernel": {
                                "$ref": "defs.json#/definitions/int64"
                            },
                            "kernelTCP": {
                                "$ref": "defs.json#/definitions/int64"
                            },
                            "limit": {
                                "$ref": "defs.json#/definitions/int64"
                            },
                            "reservation": {
                                "$ref": "defs.json#/definitions/int64"
                            },
                            "swap": {
                                "$ref": "defs.json#/definitions/int64"
                            },
                            "swappiness": {
                                "$ref": "defs.json#/definitions/uint64"
                            },
                            "disableOOMKiller": {
                                "type": "boolean"
                            },
                            "useHierarchy": {
                                "type": "boolean"
                            }
                        }
                    },
                    "network": {
                        "type": "object",
                        "properties": {
                            "classID": {
                                "$ref": "defs.json#/definitions/uint32"
                            },
                            "priorities": {
                                "type": "array",
                                "items": {
                                    "$ref": "defs-linux.json#/definitions/NetworkInterfacePriority"
                                }
                            }
                        }
                    },
                    "rdma": {
                        "type": "object",
                        "additionalProperties": {
                            "$ref": "defs-linux.json#/definitions/Rdma"
                        }
                    }
                }
            },
            "cgroupsPath": {
                "type": "string"
            },
            "rootfsPropagation": {
                "$ref": "defs-linux.json#/definitions/RootfsPropagation"
            },
            "seccomp": {
                "type": "object",
                "properties": {
                    "defaultAction": {
                        "$ref": "defs-linux.json#/definitions/SeccompAction"
                    },
                    "defaultErrnoRet": {
                        "$ref": "defs.json#/definitions/uint32"
                    },
                    "flags": {
                        "type": "array",
                        "items": {
                            "$ref": "defs-linux.json#/definitions/SeccompFlag"
                        }
                    },
                    "listenerPath": {
                        "type": "string"
                    },
                    "listenerMetadata": {
                        "type": "string"
                    },
                    "architectures": {
                        "type": "array",
                        "items": {
                            "$ref": "defs-linux.json#/definitions/SeccompArch"
                        }
                    },
                    "syscalls": {
                        "type": "array",
                        "items": {
                            "$ref": "defs-linux.json#/definitions/Syscall"
                        }
                    }
                },
                "required": [
                    "defaultAction"
                ]
            },
            "sysctl": {
                "$ref": "defs.json#/definitions/mapStringString"
            },
            "maskedPaths": {
                "$ref": "defs.json#/definitions/ArrayOfStrings"
            },
            "readonlyPaths": {
                "$ref": "defs.json#/definitions/ArrayOfStrings"
            },
            "mountLabel": {
                "type": "string"
            },
            "intelRdt": {
                "type": "object",
                "properties": {
                    "closID": {
                        "type": "string"
                    },
                    "l3CacheSchema": {
                        "type": "string"
                    },
                    "memBwSchema": {
                        "type": "string",
                        "pattern": "^MB:[^\\n]*$"
                    }
                }
            },
            "personality": {
                "type": "object",
                "$ref": "defs-linux.json#/definitions/Personality"
            }
        }
    }
}
