diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # Revision history for haskell-lsp-types
 
+## 0.24.0.0
+
+* Add and 'isPreferred' and 'disabled' fields to CodeAction
+
 ## 0.23.0.0
 
 * Add runWith for transporots other than stdio (@paulyoung)
diff --git a/haskell-lsp-types.cabal b/haskell-lsp-types.cabal
--- a/haskell-lsp-types.cabal
+++ b/haskell-lsp-types.cabal
@@ -1,5 +1,5 @@
 name:                haskell-lsp-types
-version:             0.23.0.0
+version:             0.24.0.0
 synopsis:            Haskell library for the Microsoft Language Server Protocol, data types
 
 description:         An implementation of the types to allow language implementors to
diff --git a/src/Language/Haskell/LSP/Types/CodeAction.hs b/src/Language/Haskell/LSP/Types/CodeAction.hs
--- a/src/Language/Haskell/LSP/Types/CodeAction.hs
+++ b/src/Language/Haskell/LSP/Types/CodeAction.hs
@@ -261,6 +261,10 @@
 
 deriveJSON lspOptions ''CodeActionParams
 
+newtype Reason = Reason {_reason :: Text}
+  deriving (Read, Show, Eq)
+
+deriveJSON lspOptions ''Reason
 data CodeAction =
   -- | A code action represents a change that can be performed in code, e.g. to fix a problem or
   -- to refactor code.
@@ -275,6 +279,11 @@
     , _command     :: Maybe Command -- ^ A command this code action executes. If a code action
                                     -- provides an edit and a command, first the edit is
                                     -- executed and then the command.
+    , _isPreferred :: Maybe Bool -- ^ Marks this as a preferred action.
+                              -- Preferred actions are used by the `auto fix` command and can be targeted by keybindings.
+                              -- A quick fix should be marked preferred if it properly addresses the underlying error.
+                              -- A refactoring should be marked preferred if it is the most reasonable choice of actions to take.
+    , _disabled    :: Maybe Reason -- ^ Marks that the code action cannot currently be applied.
     } deriving (Read,Show,Eq)
 
 deriveJSON lspOptions ''CodeAction
