docs: def devices(self, value):
          """
          { "PathOnHost": "/dev/deviceName", "PathInContainer": "/dev/deviceName", "CgroupPermissions": "mrw"}
          """
  
          if value is None:
              self._devices = None
  
          elif isinstance(value, list):
              results = []
              delimiter = ':'
  
              for device in value:
                  if not isinstance(device, six.string_types):
                      raise TypeError("each device must be a str. {0} was passed".format(device))
  
                  occurrences = device.count(delimiter)
                  permissions = 'rwm'
  
                  if occurrences is 0:
                      path_on_host = device
                      path_in_container = device
  
                  elif occurrences is 1:
                      path_on_host, path_in_container = device.split(delimiter)
  
                  elif occurrences is 2:
                      path_on_host, path_in_container, permissions = device.split(delimiter)
  
                      if permissions not in 'rwm':
                          raise ValueError("only permissions supported for devices are any combination of  'r' 'w' 'm'.")
                  else:
                      raise ValueError(
                          """When passing devices they must be in one of the
                          following formats: path_on_host, path_on_host:path_in_container,
                          or path_on_host:path_in_container:permissions"""
                      )
  
                  results.append("{0}:{1}:{2}".format(path_on_host, path_in_container, permissions))
  
              self._devices = results
          else:
              raise TypeError("devices must be a list or None.")