docs: def _from_dict(cls, _dict):
          """Initialize a Workspace object from a json dictionary."""
          args = {}
          if 'name' in _dict:
              args['name'] = _dict.get('name')
          else:
              raise ValueError(
                  'Required property \'name\' not present in Workspace JSON')
          if 'description' in _dict:
              args['description'] = _dict.get('description')
          if 'language' in _dict:
              args['language'] = _dict.get('language')
          else:
              raise ValueError(
                  'Required property \'language\' not present in Workspace JSON')
          if 'metadata' in _dict:
              args['metadata'] = _dict.get('metadata')
          if 'learning_opt_out' in _dict:
              args['learning_opt_out'] = _dict.get('learning_opt_out')
          else:
              raise ValueError(
                  'Required property \'learning_opt_out\' not present in Workspace JSON'
              )
          if 'system_settings' in _dict:
              args['system_settings'] = WorkspaceSystemSettings._from_dict(
                  _dict.get('system_settings'))
          if 'workspace_id' in _dict:
              args['workspace_id'] = _dict.get('workspace_id')
          else:
              raise ValueError(
                  'Required property \'workspace_id\' not present in Workspace JSON'
              )
          if 'status' in _dict:
              args['status'] = _dict.get('status')
          if 'created' in _dict:
              args['created'] = string_to_datetime(_dict.get('created'))
          if 'updated' in _dict:
              args['updated'] = string_to_datetime(_dict.get('updated'))
          if 'intents' in _dict:
              args['intents'] = [
                  Intent._from_dict(x) for x in (_dict.get('intents'))
              ]
          if 'entities' in _dict:
              args['entities'] = [
                  Entity._from_dict(x) for x in (_dict.get('entities'))
              ]
          if 'dialog_nodes' in _dict:
              args['dialog_nodes'] = [
                  DialogNode._from_dict(x) for x in (_dict.get('dialog_nodes'))
              ]
          if 'counterexamples' in _dict:
              args['counterexamples'] = [
                  Counterexample._from_dict(x)
                  for x in (_dict.get('counterexamples'))
              ]
          return cls(**args)