public function denormalize($data, $class, $format = null, array $context = [])
 {
     if (empty($data)) {
         return null;
     }
     if (isset($data->{'$ref'})) {
         return new Reference($data->{'$ref'}, $context['rootSchema'] ?: null);
     }
     $object = new \Docker\API\Model\SystemInformation();
     if (!isset($context['rootSchema'])) {
         $context['rootSchema'] = $object;
     }
     if (property_exists($data, 'Architecture')) {
         $object->setArchitecture($data->{'Architecture'});
     }
     if (property_exists($data, 'ClusterStore')) {
         $object->setClusterStore($data->{'ClusterStore'});
     }
     if (property_exists($data, 'CgroupDriver')) {
         $object->setCgroupDriver($data->{'CgroupDriver'});
     }
     if (property_exists($data, 'Containers')) {
         $object->setContainers($data->{'Containers'});
     }
     if (property_exists($data, 'ContainersRunning')) {
         $object->setContainersRunning($data->{'ContainersRunning'});
     }
     if (property_exists($data, 'ContainersStopped')) {
         $object->setContainersStopped($data->{'ContainersStopped'});
     }
     if (property_exists($data, 'ContainersPaused')) {
         $object->setContainersPaused($data->{'ContainersPaused'});
     }
     if (property_exists($data, 'CpuCfsPeriod')) {
         $object->setCpuCfsPeriod($data->{'CpuCfsPeriod'});
     }
     if (property_exists($data, 'CpuCfsQuota')) {
         $object->setCpuCfsQuota($data->{'CpuCfsQuota'});
     }
     if (property_exists($data, 'Debug')) {
         $object->setDebug($data->{'Debug'});
     }
     if (property_exists($data, 'DiscoveryBackend')) {
         $object->setDiscoveryBackend($data->{'DiscoveryBackend'});
     }
     if (property_exists($data, 'DockerRootDir')) {
         $object->setDockerRootDir($data->{'DockerRootDir'});
     }
     if (property_exists($data, 'Driver')) {
         $object->setDriver($data->{'Driver'});
     }
     if (property_exists($data, 'DriverStatus')) {
         $value = $data->{'DriverStatus'};
         if (is_array($data->{'DriverStatus'})) {
             $values = [];
             foreach ($data->{'DriverStatus'} as $value_1) {
                 $value_2 = $value_1;
                 if (is_array($value_1)) {
                     $values_1 = [];
                     foreach ($value_1 as $value_3) {
                         $values_1[] = $value_3;
                     }
                     $value_2 = $values_1;
                 }
                 if (is_null($value_1)) {
                     $value_2 = $value_1;
                 }
                 $values[] = $value_2;
             }
             $value = $values;
         }
         if (is_null($data->{'DriverStatus'})) {
             $value = $data->{'DriverStatus'};
         }
         $object->setDriverStatus($value);
     }
     if (property_exists($data, 'SystemStatus')) {
         $value_4 = $data->{'SystemStatus'};
         if (is_array($data->{'SystemStatus'})) {
             $values_2 = [];
             foreach ($data->{'SystemStatus'} as $value_5) {
                 $value_6 = $value_5;
                 if (is_array($value_5)) {
                     $values_3 = [];
                     foreach ($value_5 as $value_7) {
                         $values_3[] = $value_7;
                     }
                     $value_6 = $values_3;
                 }
                 if (is_null($value_5)) {
                     $value_6 = $value_5;
                 }
                 $values_2[] = $value_6;
             }
             $value_4 = $values_2;
         }
         if (is_null($data->{'SystemStatus'})) {
             $value_4 = $data->{'SystemStatus'};
         }
         $object->setSystemStatus($value_4);
     }
     if (property_exists($data, 'ExecutionDriver')) {
         $object->setExecutionDriver($data->{'ExecutionDriver'});
     }
     if (property_exists($data, 'ExperimentalBuild')) {
         $object->setExperimentalBuild($data->{'ExperimentalBuild'});
     }
     if (property_exists($data, 'HttpProxy')) {
         $object->setHttpProxy($data->{'HttpProxy'});
     }
     if (property_exists($data, 'HttpsProxy')) {
         $object->setHttpsProxy($data->{'HttpsProxy'});
     }
     if (property_exists($data, 'ID')) {
         $object->setID($data->{'ID'});
     }
     if (property_exists($data, 'IPv4Forwarding')) {
         $object->setIPv4Forwarding($data->{'IPv4Forwarding'});
     }
     if (property_exists($data, 'Images')) {
         $object->setImages($data->{'Images'});
     }
     if (property_exists($data, 'IndexServerAddress')) {
         $object->setIndexServerAddress($data->{'IndexServerAddress'});
     }
     if (property_exists($data, 'InitPath')) {
         $object->setInitPath($data->{'InitPath'});
     }
     if (property_exists($data, 'InitSha1')) {
         $object->setInitSha1($data->{'InitSha1'});
     }
     if (property_exists($data, 'KernelMemory')) {
         $object->setKernelMemory($data->{'KernelMemory'});
     }
     if (property_exists($data, 'KernelVersion')) {
         $object->setKernelVersion($data->{'KernelVersion'});
     }
     if (property_exists($data, 'Labels')) {
         $value_8 = $data->{'Labels'};
         if (is_array($data->{'Labels'})) {
             $values_4 = [];
             foreach ($data->{'Labels'} as $value_9) {
                 $values_4[] = $value_9;
             }
             $value_8 = $values_4;
         }
         if (is_null($data->{'Labels'})) {
             $value_8 = $data->{'Labels'};
         }
         $object->setLabels($value_8);
     }
     if (property_exists($data, 'MemTotal')) {
         $object->setMemTotal($data->{'MemTotal'});
     }
     if (property_exists($data, 'MemoryLimit')) {
         $object->setMemoryLimit($data->{'MemoryLimit'});
     }
     if (property_exists($data, 'NCPU')) {
         $object->setNCPU($data->{'NCPU'});
     }
     if (property_exists($data, 'NEventsListener')) {
         $object->setNEventsListener($data->{'NEventsListener'});
     }
     if (property_exists($data, 'NFd')) {
         $object->setNFd($data->{'NFd'});
     }
     if (property_exists($data, 'NGoroutines')) {
         $object->setNGoroutines($data->{'NGoroutines'});
     }
     if (property_exists($data, 'Name')) {
         $object->setName($data->{'Name'});
     }
     if (property_exists($data, 'NoProxy')) {
         $object->setNoProxy($data->{'NoProxy'});
     }
     if (property_exists($data, 'OomKillDisable')) {
         $object->setOomKillDisable($data->{'OomKillDisable'});
     }
     if (property_exists($data, 'OSType')) {
         $object->setOSType($data->{'OSType'});
     }
     if (property_exists($data, 'OperatingSystem')) {
         $object->setOperatingSystem($data->{'OperatingSystem'});
     }
     if (property_exists($data, 'RegistryConfig')) {
         $object->setRegistryConfig($this->serializer->deserialize($data->{'RegistryConfig'}, 'Docker\\API\\Model\\RegistryConfig', 'raw', $context));
     }
     if (property_exists($data, 'SwapLimit')) {
         $object->setSwapLimit($data->{'SwapLimit'});
     }
     if (property_exists($data, 'SystemTime')) {
         $object->setSystemTime($data->{'SystemTime'});
     }
     if (property_exists($data, 'ServerVersion')) {
         $object->setServerVersion($data->{'ServerVersion'});
     }
     return $object;
 }
 public function denormalize($data, $class, $format = null, array $context = [])
 {
     if (empty($data)) {
         return null;
     }
     if (isset($data->{'$ref'})) {
         return new Reference($data->{'$ref'}, $context['rootSchema'] ?: null);
     }
     $object = new \Docker\API\Model\SystemInformation();
     if (!isset($context['rootSchema'])) {
         $context['rootSchema'] = $object;
     }
     if (isset($data->{'Architecture'})) {
         $object->setArchitecture($data->{'Architecture'});
     }
     if (isset($data->{'Containers'})) {
         $object->setContainers($data->{'Containers'});
     }
     if (isset($data->{'ContainersRunning'})) {
         $object->setContainersRunning($data->{'ContainersRunning'});
     }
     if (isset($data->{'ContainersStopped'})) {
         $object->setContainersStopped($data->{'ContainersStopped'});
     }
     if (isset($data->{'ContainersPaused'})) {
         $object->setContainersPaused($data->{'ContainersPaused'});
     }
     if (isset($data->{'CpuCfsPeriod'})) {
         $object->setCpuCfsPeriod($data->{'CpuCfsPeriod'});
     }
     if (isset($data->{'CpuCfsQuota'})) {
         $object->setCpuCfsQuota($data->{'CpuCfsQuota'});
     }
     if (isset($data->{'Debug'})) {
         $object->setDebug($data->{'Debug'});
     }
     if (isset($data->{'DiscoveryBackend'})) {
         $object->setDiscoveryBackend($data->{'DiscoveryBackend'});
     }
     if (isset($data->{'DockerRootDir'})) {
         $object->setDockerRootDir($data->{'DockerRootDir'});
     }
     if (isset($data->{'Driver'})) {
         $object->setDriver($data->{'Driver'});
     }
     if (isset($data->{'DriverStatus'})) {
         $values_185 = [];
         foreach ($data->{'DriverStatus'} as $value_186) {
             $values_187 = [];
             foreach ($value_186 as $value_188) {
                 $values_187[] = $value_188;
             }
             $values_185[] = $values_187;
         }
         $object->setDriverStatus($values_185);
     }
     if (isset($data->{'SystemStatus'})) {
         $values_189 = [];
         foreach ($data->{'SystemStatus'} as $value_190) {
             $values_191 = [];
             foreach ($value_190 as $value_192) {
                 $values_191[] = $value_192;
             }
             $values_189[] = $values_191;
         }
         $object->setSystemStatus($values_189);
     }
     if (isset($data->{'ExecutionDriver'})) {
         $object->setExecutionDriver($data->{'ExecutionDriver'});
     }
     if (isset($data->{'ExperimentalBuild'})) {
         $object->setExperimentalBuild($data->{'ExperimentalBuild'});
     }
     if (isset($data->{'HttpProxy'})) {
         $object->setHttpProxy($data->{'HttpProxy'});
     }
     if (isset($data->{'HttpsProxy'})) {
         $object->setHttpsProxy($data->{'HttpsProxy'});
     }
     if (isset($data->{'ID'})) {
         $object->setID($data->{'ID'});
     }
     if (isset($data->{'IPv4Forwarding'})) {
         $object->setIPv4Forwarding($data->{'IPv4Forwarding'});
     }
     if (isset($data->{'Images'})) {
         $object->setImages($data->{'Images'});
     }
     if (isset($data->{'IndexServerAddress'})) {
         $object->setIndexServerAddress($data->{'IndexServerAddress'});
     }
     if (isset($data->{'InitPath'})) {
         $object->setInitPath($data->{'InitPath'});
     }
     if (isset($data->{'InitSha1'})) {
         $object->setInitSha1($data->{'InitSha1'});
     }
     if (isset($data->{'KernelVersion'})) {
         $object->setKernelVersion($data->{'KernelVersion'});
     }
     if (isset($data->{'Labels'})) {
         $values_193 = [];
         foreach ($data->{'Labels'} as $value_194) {
             $values_193[] = $value_194;
         }
         $object->setLabels($values_193);
     }
     if (isset($data->{'MemTotal'})) {
         $object->setMemTotal($data->{'MemTotal'});
     }
     if (isset($data->{'MemoryLimit'})) {
         $object->setMemoryLimit($data->{'MemoryLimit'});
     }
     if (isset($data->{'NCPU'})) {
         $object->setNCPU($data->{'NCPU'});
     }
     if (isset($data->{'NEventsListener'})) {
         $object->setNEventsListener($data->{'NEventsListener'});
     }
     if (isset($data->{'NFd'})) {
         $object->setNFd($data->{'NFd'});
     }
     if (isset($data->{'NGoroutines'})) {
         $object->setNGoroutines($data->{'NGoroutines'});
     }
     if (isset($data->{'Name'})) {
         $object->setName($data->{'Name'});
     }
     if (isset($data->{'NoProxy'})) {
         $object->setNoProxy($data->{'NoProxy'});
     }
     if (isset($data->{'OomKillDisable'})) {
         $object->setOomKillDisable($data->{'OomKillDisable'});
     }
     if (isset($data->{'OSType'})) {
         $object->setOSType($data->{'OSType'});
     }
     if (isset($data->{'OperatingSystem'})) {
         $object->setOperatingSystem($data->{'OperatingSystem'});
     }
     if (isset($data->{'RegistryConfig'})) {
         $object->setRegistryConfig($this->serializer->deserialize($data->{'RegistryConfig'}, 'Docker\\API\\Model\\RegistryConfig', 'raw', $context));
     }
     if (isset($data->{'SwapLimit'})) {
         $object->setSwapLimit($data->{'SwapLimit'});
     }
     if (isset($data->{'SystemTime'})) {
         $object->setSystemTime($data->{'SystemTime'});
     }
     if (isset($data->{'ServerVersion'})) {
         $object->setServerVersion($data->{'ServerVersion'});
     }
     return $object;
 }