diff --git a/amazonka-iam-policy.cabal b/amazonka-iam-policy.cabal
--- a/amazonka-iam-policy.cabal
+++ b/amazonka-iam-policy.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-iam-policy
-version:               0.0.1
+version:               0.0.2
 synopsis:              Amazon IAM Policy Document DSL and Combinators.
 homepage:              https://github.com/brendanhay/amazonka-iam-policy
 bug-reports:           https://github.com/brendanhay/amazonka-iam-policy/issues
@@ -35,7 +35,6 @@
 source-repository head
     type:              git
     location:          git://github.com/brendanhay/amazonka-iam-policy.git
-    subdir:            amazonka-iam-policy
 
 library
     default-language:  Haskell2010
diff --git a/src/Amazonka/IAM/Policy.hs b/src/Amazonka/IAM/Policy.hs
--- a/src/Amazonka/IAM/Policy.hs
+++ b/src/Amazonka/IAM/Policy.hs
@@ -28,7 +28,8 @@
     -- $usage
 
     -- * Policy Documents
-      Policy    (..)
+      Document
+    , Policy    (..)
 
     -- ** Constructing Policies
     , document
@@ -104,6 +105,7 @@
 import qualified Data.Aeson.Types             as JSON
 import qualified Data.ByteString.Base64       as Base64
 import qualified Data.ByteString.Lazy         as LBS
+import qualified Data.List.NonEmpty           as NE
 import qualified Data.Text.Encoding           as Text
 import qualified Data.Time.Clock.POSIX        as POSIX
 import qualified Data.Time.Format             as Time
@@ -277,28 +279,24 @@
             "Action": [
                 "foo",
                 "bar"
-            ],
-            "Resource": []
+            ]
 ...
 
 >>> encode' $ singleton (allow { action = not ["baz"] })
 ...
             "Effect": "Allow",
-            "Resource": [],
             "NotAction": "baz"
 ...
 
 >>> encode' $ singleton (allow { action = any })
 ...
             "Effect": "Allow",
-            "Action": "*",
-            "Resource": []
+            "Action": "*"
 ...
 
 >>> encode' $ singleton (allow { action = none })
 ...
             "Effect": "Allow",
-            "Resource": [],
             "NotAction": "*"
 ...
 
@@ -446,6 +444,8 @@
 > }
 
 -}
+type Document = Policy Statement
+
 data Policy a = Policy
     { version   :: !(Maybe Version)
     , id        :: !(Maybe Id)
@@ -488,13 +488,11 @@
     "Statement": [
         {
             "Effect": "Allow",
-            "Action": [],
-            "Resource": []
+            "Action": []
         },
         {
             "Effect": "Deny",
-            "Action": [],
-            "Resource": []
+            "Action": []
         }
     ],
     "Version": "2012-10-17"
@@ -536,7 +534,7 @@
 ==== Example
 
 >>> encode $ singleton allow
-"{\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[],\"Resource\":[]}],\"Version\":\"2012-10-17\"}"
+"{\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[]}],\"Version\":\"2012-10-17\"}"
 
 -}
 encode :: Policy Statement -> LBS.ByteString
@@ -648,7 +646,8 @@
             , fmap (blockToJSON "Principal") principal
             , Just ("Effect" .= effect)
             , Just (blockToJSON "Action"   $ oneOrMany action)
-            , Just (blockToJSON "Resource" $ oneOrMany resource)
+            , fmap (blockToJSON "Resource" . oneOrMany . fmap NE.toList)
+                   (sequence (fmap NE.nonEmpty resource))
             , fmap ("Condition" .=) condition
             ]
     {-# INLINEABLE toJSON #-}
@@ -711,7 +710,6 @@
         {
             "Effect": "Allow",
             "Action": [],
-            "Resource": [],
             "Sid": "cd3ad3d9-2776-4ef1-a904-4c229d1642ee"
         }
     ],
@@ -795,8 +793,7 @@
         {
             "Effect": "Allow",
             "NotPrincipal": "*",
-            "Action": [],
-            "Resource": []
+            "Action": []
         }
     ],
     "Version": "2012-10-17"
@@ -812,8 +809,7 @@
                 "AWS": [
                     "arn:foo:::bar"
                 ]
-            },
-            "Resource": []
+            }
         }
     ],
     "Version": "2012-10-17"
@@ -992,7 +988,6 @@
         {
             "Effect": "Allow",
             "Action": [],
-            "Resource": [],
             "Condition": {
                 "Bool": {
                     "aws:MultiFactorAuthPresent": true
