Update docs
diff --git a/docs/dyn/firebaserules_v1.projects.rulesets.html b/docs/dyn/firebaserules_v1.projects.rulesets.html
new file mode 100644
index 0000000..6130a25
--- /dev/null
+++ b/docs/dyn/firebaserules_v1.projects.rulesets.html
@@ -0,0 +1,283 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="firebaserules_v1.html">Firebase Rules API</a> . <a href="firebaserules_v1.projects.html">projects</a> . <a href="firebaserules_v1.projects.rulesets.html">rulesets</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(name=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Create a `Ruleset` from `Source`.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Delete a `Ruleset` by resource name.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Get a `Ruleset` by name including the full `Source` contents.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+<p class="firstline">List `Ruleset` metadata only and optionally filter the results by Ruleset</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(name=None, body, x__xgafv=None)</code>
+  <pre>Create a `Ruleset` from `Source`.
+
+The `Ruleset` is given a unique generated name which is returned to the
+caller. `Source` containing syntactic or semantics errors will result in an
+error response indicating the first error encountered. For a detailed view
+of `Source` issues, use TestRuleset.
+
+Args:
+  name: string, Resource name for Project which owns this `Ruleset`.
+
+Format: `projects/{project_id}` (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # `Ruleset` is an immutable copy of `Source` with a globally unique identifier
+      # and a creation time.
+    "source": { # `Source` is one or more `File` messages comprising a logical set of rules. # `Source` for the `Ruleset`.
+      "files": [ # `File` set constituting the `Source` bundle.
+        { # `File` containing source content.
+          "content": "A String", # Textual Content.
+          "name": "A String", # File name.
+          "fingerprint": "A String", # Fingerprint (e.g. github sha) associated with the `File`.
+        },
+      ],
+    },
+    "createTime": "A String", # Time the `Ruleset` was created.
+        # @OutputOnly
+    "name": "A String", # Name of the `Ruleset`. The ruleset_id is auto generated by the service.
+        # Format: `projects/{project_id}/rulesets/{ruleset_id}`
+        # @OutputOnly
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # `Ruleset` is an immutable copy of `Source` with a globally unique identifier
+        # and a creation time.
+      "source": { # `Source` is one or more `File` messages comprising a logical set of rules. # `Source` for the `Ruleset`.
+        "files": [ # `File` set constituting the `Source` bundle.
+          { # `File` containing source content.
+            "content": "A String", # Textual Content.
+            "name": "A String", # File name.
+            "fingerprint": "A String", # Fingerprint (e.g. github sha) associated with the `File`.
+          },
+        ],
+      },
+      "createTime": "A String", # Time the `Ruleset` was created.
+          # @OutputOnly
+      "name": "A String", # Name of the `Ruleset`. The ruleset_id is auto generated by the service.
+          # Format: `projects/{project_id}/rulesets/{ruleset_id}`
+          # @OutputOnly
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name=None, x__xgafv=None)</code>
+  <pre>Delete a `Ruleset` by resource name.
+
+If the `Ruleset` is referenced by a `Release` the operation will fail.
+
+Args:
+  name: string, Resource name for the ruleset to delete.
+
+Format: `projects/{project_id}/rulesets/{ruleset_id}` (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name=None, x__xgafv=None)</code>
+  <pre>Get a `Ruleset` by name including the full `Source` contents.
+
+Args:
+  name: string, Resource name for the ruleset to get.
+
+Format: `projects/{project_id}/rulesets/{ruleset_id}` (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # `Ruleset` is an immutable copy of `Source` with a globally unique identifier
+        # and a creation time.
+      "source": { # `Source` is one or more `File` messages comprising a logical set of rules. # `Source` for the `Ruleset`.
+        "files": [ # `File` set constituting the `Source` bundle.
+          { # `File` containing source content.
+            "content": "A String", # Textual Content.
+            "name": "A String", # File name.
+            "fingerprint": "A String", # Fingerprint (e.g. github sha) associated with the `File`.
+          },
+        ],
+      },
+      "createTime": "A String", # Time the `Ruleset` was created.
+          # @OutputOnly
+      "name": "A String", # Name of the `Ruleset`. The ruleset_id is auto generated by the service.
+          # Format: `projects/{project_id}/rulesets/{ruleset_id}`
+          # @OutputOnly
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
+  <pre>List `Ruleset` metadata only and optionally filter the results by Ruleset
+name.
+
+The full `Source` contents of a `Ruleset` may be retrieved with
+GetRuleset.
+
+Args:
+  name: string, Resource name for the project.
+
+Format: `projects/{project_id}` (required)
+  pageToken: string, Next page token for loading the next batch of `Ruleset` instances.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageSize: integer, Page size to load. Maximum of 100. Defaults to 10.
+Note: `page_size` is just a hint and the service may choose to load less
+than `page_size` due to the size of the output. To traverse all of the
+releases, caller should iterate until the `page_token` is empty.
+
+Returns:
+  An object of the form:
+
+    { # The response for FirebaseRulesService.ListRulesets
+    "nextPageToken": "A String", # The pagination token to retrieve the next page of results. If the value is
+        # empty, no further results remain.
+    "rulesets": [ # List of `Ruleset` instances.
+      { # `Ruleset` is an immutable copy of `Source` with a globally unique identifier
+            # and a creation time.
+          "source": { # `Source` is one or more `File` messages comprising a logical set of rules. # `Source` for the `Ruleset`.
+            "files": [ # `File` set constituting the `Source` bundle.
+              { # `File` containing source content.
+                "content": "A String", # Textual Content.
+                "name": "A String", # File name.
+                "fingerprint": "A String", # Fingerprint (e.g. github sha) associated with the `File`.
+              },
+            ],
+          },
+          "createTime": "A String", # Time the `Ruleset` was created.
+              # @OutputOnly
+          "name": "A String", # Name of the `Ruleset`. The ruleset_id is auto generated by the service.
+              # Format: `projects/{project_id}/rulesets/{ruleset_id}`
+              # @OutputOnly
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file